Capstone Group 5 AIML May 23 A- NLP 1 Project [NLP-ChatBot]

Contributors: </strong> Anurag, Renuka, Rahul, Anjali, Sreekanth, Harshal, Sanket

Step 1: Import the data [ 3 points ]

In [1]:
# pip install wordcloud
In [2]:
# pip install textblob
In [3]:
# pip install xgboost

Import required libraries

In [4]:
import sklearn
print(sklearn.__version__)
1.2.2
In [5]:
# !pip uninstall scikit-learn --yes
# !pip uninstall imblearn --yes
# !pip install scikit-learn==1.2.2
# !pip install imblearn
In [6]:
# pip install --upgrade imbalanced-learn
In [7]:
import numpy as np
import pandas as pd
import seaborn as sns
import matplotlib.pyplot as plt
import string
import nltk as nltk
from nltk.corpus import stopwords
from nltk.stem import PorterStemmer
from nltk.stem import WordNetLemmatizer
from sklearn.preprocessing import LabelEncoder

import unicodedata
import unidecode
# from autocorrect import Speller
from string import punctuation
# from wordcloud import WordCloud, STOPWORDS
# from textblob import TextBlob

import re
import string
from nltk.probability import FreqDist
from nltk.util import ngrams
from nltk.tokenize import word_tokenize
from nltk.stem import WordNetLemmatizer

from wordcloud import WordCloud

from textblob import TextBlob

from sklearn.model_selection import train_test_split, cross_val_score
from sklearn.feature_extraction.text import CountVectorizer
from sklearn.feature_extraction.text import TfidfVectorizer
from gensim.models import Word2Vec

from sklearn.linear_model import LogisticRegression
from sklearn.naive_bayes import GaussianNB
from sklearn.neighbors import KNeighborsClassifier
from sklearn.svm import SVC
from sklearn.tree import DecisionTreeClassifier
from sklearn.ensemble import RandomForestClassifier, BaggingClassifier, AdaBoostClassifier, GradientBoostingClassifier
from xgboost import XGBClassifier

from sklearn.metrics import classification_report, confusion_matrix

from keras.callbacks import EarlyStopping, ModelCheckpoint

from tensorflow.keras.preprocessing.sequence import pad_sequences
from tensorflow.keras.layers import Dense, Input, LSTM, Embedding, Dropout, Activation, Flatten, Bidirectional, GlobalMaxPool1D
from tensorflow.keras.models import Model, Sequential
from tensorflow.keras.utils import to_categorical

from ann_visualizer.visualize import ann_viz;
from tensorflow.keras.utils import plot_model

from sklearn.metrics import classification_report, confusion_matrix,make_scorer,recall_score

from sklearn.model_selection import GridSearchCV

from imblearn.over_sampling import SMOTE
# from sklearn.datasets import make_classification  # for sample data generation
# from collections import Counter  # for counting class labels

from sklearn.metrics import precision_score
from sklearn.metrics import f1_score
from sklearn.metrics import accuracy_score

Load data

In [8]:
data = pd.read_excel("data.xlsx")
In [9]:
data.head()
Out[9]:
Unnamed: 0 Data Countries Local Industry Sector Accident Level Potential Accident Level Genre Employee or Third Party Critical Risk Description
0 0 2016-01-01 Country_01 Local_01 Mining I IV Male Third Party Pressed While removing the drill rod of the Jumbo 08 f...
1 1 2016-01-02 Country_02 Local_02 Mining I IV Male Employee Pressurized Systems During the activation of a sodium sulphide pum...
2 2 2016-01-06 Country_01 Local_03 Mining I III Male Third Party (Remote) Manual Tools In the sub-station MILPO located at level +170...
3 3 2016-01-08 Country_01 Local_04 Mining I I Male Third Party Others Being 9:45 am. approximately in the Nv. 1880 C...
4 4 2016-01-10 Country_01 Local_04 Mining IV IV Male Third Party Others Approximately at 11:45 a.m. in circumstances t...
In [10]:
data.shape
Out[10]:
(425, 11)
In [11]:
data.info()
<class 'pandas.core.frame.DataFrame'>
RangeIndex: 425 entries, 0 to 424
Data columns (total 11 columns):
 #   Column                    Non-Null Count  Dtype         
---  ------                    --------------  -----         
 0   Unnamed: 0                425 non-null    int64         
 1   Data                      425 non-null    datetime64[ns]
 2   Countries                 425 non-null    object        
 3   Local                     425 non-null    object        
 4   Industry Sector           425 non-null    object        
 5   Accident Level            425 non-null    object        
 6   Potential Accident Level  425 non-null    object        
 7   Genre                     425 non-null    object        
 8   Employee or Third Party   425 non-null    object        
 9   Critical Risk             425 non-null    object        
 10  Description               425 non-null    object        
dtypes: datetime64[ns](1), int64(1), object(9)
memory usage: 36.7+ KB

Observations:

  1. There are total 425 rows and 11 columns.
  2. Out of 11 columns, 1 columns is of integer type, 1 column is of datetime type and remaining 9 columns are of Object type.
  3. Column "Unnamed: 0" is not required as it contains integer values of serial numbers, hence this can be deleted.

Step 2: Data cleansing [ 5 points ]

2a. Column "Unnamed: 0" is not required, hence deleting the column.

In [12]:
data=data.drop(columns='Unnamed: 0')
In [13]:
data.info()
<class 'pandas.core.frame.DataFrame'>
RangeIndex: 425 entries, 0 to 424
Data columns (total 10 columns):
 #   Column                    Non-Null Count  Dtype         
---  ------                    --------------  -----         
 0   Data                      425 non-null    datetime64[ns]
 1   Countries                 425 non-null    object        
 2   Local                     425 non-null    object        
 3   Industry Sector           425 non-null    object        
 4   Accident Level            425 non-null    object        
 5   Potential Accident Level  425 non-null    object        
 6   Genre                     425 non-null    object        
 7   Employee or Third Party   425 non-null    object        
 8   Critical Risk             425 non-null    object        
 9   Description               425 non-null    object        
dtypes: datetime64[ns](1), object(9)
memory usage: 33.3+ KB

2b. One of the most important steps in data pre-processing is refining variable/column names. Column names provide the meaning or context to the data. Renaming column names enhances the readability and understandability of our data, particularly when working with large datasets. It facilitates easier data merging, manipulation, and helps maintain consistency across different datasets. In this dataset, we have refined column names such as "Data" to "Date" and "Genre" to "Gender" for clarity and consistency.

In [14]:
data = data.rename(columns={'Data': 'Date',
                           'Genre': 'Gender'})
In [15]:
data.info()
<class 'pandas.core.frame.DataFrame'>
RangeIndex: 425 entries, 0 to 424
Data columns (total 10 columns):
 #   Column                    Non-Null Count  Dtype         
---  ------                    --------------  -----         
 0   Date                      425 non-null    datetime64[ns]
 1   Countries                 425 non-null    object        
 2   Local                     425 non-null    object        
 3   Industry Sector           425 non-null    object        
 4   Accident Level            425 non-null    object        
 5   Potential Accident Level  425 non-null    object        
 6   Gender                    425 non-null    object        
 7   Employee or Third Party   425 non-null    object        
 8   Critical Risk             425 non-null    object        
 9   Description               425 non-null    object        
dtypes: datetime64[ns](1), object(9)
memory usage: 33.3+ KB
In [16]:
data.head()
Out[16]:
Date Countries Local Industry Sector Accident Level Potential Accident Level Gender Employee or Third Party Critical Risk Description
0 2016-01-01 Country_01 Local_01 Mining I IV Male Third Party Pressed While removing the drill rod of the Jumbo 08 f...
1 2016-01-02 Country_02 Local_02 Mining I IV Male Employee Pressurized Systems During the activation of a sodium sulphide pum...
2 2016-01-06 Country_01 Local_03 Mining I III Male Third Party (Remote) Manual Tools In the sub-station MILPO located at level +170...
3 2016-01-08 Country_01 Local_04 Mining I I Male Third Party Others Being 9:45 am. approximately in the Nv. 1880 C...
4 2016-01-10 Country_01 Local_04 Mining IV IV Male Third Party Others Approximately at 11:45 a.m. in circumstances t...

2c. Checking null values & duplicate rows in the dataset and removing them.

In [17]:
def eda(data):
    print("Running Data Cleansing on the dataframe:")
    #Null value check
    row_nan_count = data.isnull().any(axis=1).sum()
    print(f"1. Number of rows with null values: {row_nan_count}")
    # Count duplicates (considering all columns)
    num_duplicates = data.duplicated().sum()
    print("2. Number of duplicate rows:", num_duplicates)
    # Drop Duplicates
    print("3. Before deleting duplicate rows, number of records:", data.shape[0]," and columns:", data.shape[1])
    print("3.1 Deleting duplicate rows:")
    data.drop_duplicates(inplace=True)
    #Print final datashape
    print("4. After deleting duplicate rows, number of records:", data.shape[0]," and columns:", data.shape[1])
    print(data.shape)
In [18]:
data_new=data
eda(data)
Running Data Cleansing on the dataframe:
1. Number of rows with null values: 0
2. Number of duplicate rows: 7
3. Before deleting duplicate rows, number of records: 425  and columns: 10
3.1 Deleting duplicate rows:
4. After deleting duplicate rows, number of records: 418  and columns: 10
(418, 10)

Observations:

  1. Successfully deleted the column with name "Unnamed: 0".
  2. Successfully renamed columns (Data" to "Date" and "Genre" to "Gender")
  3. There were 0 rows with null values.
  4. There were 7 duplicate rows in the dataset. Successfully deleted all 7 duplicate rows.
  5. Post deleting duplicate rows, there are now 418 rows and 10 columns.
In [19]:
def data_summary(df):
    summary = pd.DataFrame(df.dtypes, columns = ['dtypes'])
    summary = summary.reset_index()
    summary.rename(columns={'index': 'Name'}, inplace=True)
    summary['Missing_values'] = df.isnull().sum().values
    summary['Unique_values'] = df.nunique().values
    summary['Duplicate_values'] = df.duplicated().sum()

    return summary
In [20]:
data_summary(data)
Out[20]:
Name dtypes Missing_values Unique_values Duplicate_values
0 Date datetime64[ns] 0 287 0
1 Countries object 0 3 0
2 Local object 0 12 0
3 Industry Sector object 0 3 0
4 Accident Level object 0 5 0
5 Potential Accident Level object 0 6 0
6 Gender object 0 2 0
7 Employee or Third Party object 0 3 0
8 Critical Risk object 0 33 0
9 Description object 0 411 0
In [21]:
data.shape
Out[21]:
(418, 10)
In [22]:
data.head()
Out[22]:
Date Countries Local Industry Sector Accident Level Potential Accident Level Gender Employee or Third Party Critical Risk Description
0 2016-01-01 Country_01 Local_01 Mining I IV Male Third Party Pressed While removing the drill rod of the Jumbo 08 f...
1 2016-01-02 Country_02 Local_02 Mining I IV Male Employee Pressurized Systems During the activation of a sodium sulphide pum...
2 2016-01-06 Country_01 Local_03 Mining I III Male Third Party (Remote) Manual Tools In the sub-station MILPO located at level +170...
3 2016-01-08 Country_01 Local_04 Mining I I Male Third Party Others Being 9:45 am. approximately in the Nv. 1880 C...
4 2016-01-10 Country_01 Local_04 Mining IV IV Male Third Party Others Approximately at 11:45 a.m. in circumstances t...
In [23]:
# Printing the hidden duplicate values in the dataset
print('There are still {} duplicates in the dataset as below'.format(data.duplicated(subset=['Description'],keep=False).sum()))
There are still 14 duplicates in the dataset as below
In [24]:
data[data.duplicated(subset=['Description'],keep=False)].sort_values(by='Description')
Out[24]:
Date Countries Local Industry Sector Accident Level Potential Accident Level Gender Employee or Third Party Critical Risk Description
166 2016-07-07 Country_01 Local_03 Mining IV V Male Third Party Others At moments when the MAPERU truck of plate F1T ...
167 2016-07-07 Country_01 Local_03 Mining I IV Male Third Party Others At moments when the MAPERU truck of plate F1T ...
261 2016-12-01 Country_01 Local_03 Mining I IV Male Employee Others During the activity of chuteo of ore in hopper...
263 2016-12-01 Country_01 Local_03 Mining I IV Male Third Party Others During the activity of chuteo of ore in hopper...
412 2017-06-20 Country_01 Local_01 Mining I IV Male Employee Others In circumstance, the AHK-903 license plate (Em...
413 2017-06-20 Country_01 Local_01 Mining I IV Male Third Party Others In circumstance, the AHK-903 license plate (Em...
130 2016-05-26 Country_03 Local_10 Others I I Male Third Party Bees In the geological reconnaissance activity, in ...
131 2016-05-26 Country_03 Local_10 Others I I Male Employee Others In the geological reconnaissance activity, in ...
143 2016-06-08 Country_03 Local_10 Others I I Male Third Party Bees Project of Vazante that carried out sediment c...
144 2016-06-08 Country_03 Local_10 Others I I Male Third Party Others Project of Vazante that carried out sediment c...
387 2017-05-06 Country_02 Local_07 Mining IV V Male Employee Projection The employees Márcio and Sérgio performed the ...
388 2017-05-06 Country_02 Local_07 Mining II V Male Employee Projection The employees Márcio and Sérgio performed the ...
37 2016-02-24 Country_02 Local_07 Mining I V Male Employee Others When starting the activity of removing a coil ...
38 2016-02-24 Country_02 Local_07 Mining I V Female Third Party Others When starting the activity of removing a coil ...

Observations:

  1. We can cleary observe that the above dataframe contains 7 duplicates out of which one or two column values are dissimilar where in the Description is matching.

  2. We also observe that the incidents which are having duplicate values happened during the same time. Hence we will be dropping these hidden duplicates which doesn't support logically.

In [25]:
# Dropping the duplicates we detected above.
data.drop_duplicates(subset=['Description'], keep='first', inplace=True)
print('After removing duplicates the shape of the dataset is:', data.shape)
After removing duplicates the shape of the dataset is: (411, 10)
In [26]:
data_summary(data)
Out[26]:
Name dtypes Missing_values Unique_values Duplicate_values
0 Date datetime64[ns] 0 287 0
1 Countries object 0 3 0
2 Local object 0 12 0
3 Industry Sector object 0 3 0
4 Accident Level object 0 5 0
5 Potential Accident Level object 0 6 0
6 Gender object 0 2 0
7 Employee or Third Party object 0 3 0
8 Critical Risk object 0 33 0
9 Description object 0 411 0
In [27]:
data.shape
Out[27]:
(411, 10)

2c. Exploratory Data Analysis (EDA)

2c.1 Extracting month & year from Date column

Observations:

  1. Extracting the month and year from the Date column would provide valuable insights.
  2. The Month and Year columns will assist in time series analysis, allowing us to analyze the number of accidents occurring in specific years or months. This analysis helps us understand if there is any seasonal effect.
In [28]:
data['month'] = pd.to_datetime(data['Date']).dt.month
data['year'] = pd.to_datetime(data['Date']).dt.year
In [29]:
data.head()
Out[29]:
Date Countries Local Industry Sector Accident Level Potential Accident Level Gender Employee or Third Party Critical Risk Description month year
0 2016-01-01 Country_01 Local_01 Mining I IV Male Third Party Pressed While removing the drill rod of the Jumbo 08 f... 1 2016
1 2016-01-02 Country_02 Local_02 Mining I IV Male Employee Pressurized Systems During the activation of a sodium sulphide pum... 1 2016
2 2016-01-06 Country_01 Local_03 Mining I III Male Third Party (Remote) Manual Tools In the sub-station MILPO located at level +170... 1 2016
3 2016-01-08 Country_01 Local_04 Mining I I Male Third Party Others Being 9:45 am. approximately in the Nv. 1880 C... 1 2016
4 2016-01-10 Country_01 Local_04 Mining IV IV Male Third Party Others Approximately at 11:45 a.m. in circumstances t... 1 2016

Modifying column values of "Accident Level" & "Potential Accident Level"

In [30]:
data.head()
Out[30]:
Date Countries Local Industry Sector Accident Level Potential Accident Level Gender Employee or Third Party Critical Risk Description month year
0 2016-01-01 Country_01 Local_01 Mining I IV Male Third Party Pressed While removing the drill rod of the Jumbo 08 f... 1 2016
1 2016-01-02 Country_02 Local_02 Mining I IV Male Employee Pressurized Systems During the activation of a sodium sulphide pum... 1 2016
2 2016-01-06 Country_01 Local_03 Mining I III Male Third Party (Remote) Manual Tools In the sub-station MILPO located at level +170... 1 2016
3 2016-01-08 Country_01 Local_04 Mining I I Male Third Party Others Being 9:45 am. approximately in the Nv. 1880 C... 1 2016
4 2016-01-10 Country_01 Local_04 Mining IV IV Male Third Party Others Approximately at 11:45 a.m. in circumstances t... 1 2016

Observations:

Replacing the categorical values in the 'Accident Level' and 'Potential Accident Level' columns with numerical values.

It converts the ordinal categorical variables ('Accident Level' and 'Potential Accident Level') into numerical values, preserving the order or hierarchy among the categories.

This numerical representation allows the machine learning model to better understand the relationship between different levels of accidents and potential accident levels.

In [31]:
data['Potential Accident Level'] = data['Potential Accident Level'].replace('VI', 'V')
In [32]:
data['Accident Level'].replace({'I': 0, 'II': 1, 'III': 2, 'IV':3, 'V':4}, inplace=True)
data['Potential Accident Level'].replace({'I': 0, 'II': 1, 'III': 2, 'IV':3, 'V':4,}, inplace=True)

2c.2 Checking unique values in each column

In [34]:
print("Printing unique values in each column:")
print('')
for col_name in data.columns:
    if(col_name!='Date' and col_name!='Description'):
        print(col_name, ":")
        print('--------------------------------------')
        print(data[col_name].unique())
        print('')
Printing unique values in each column:

Countries :
--------------------------------------
['Country_01' 'Country_02' 'Country_03']

Local :
--------------------------------------
['Local_01' 'Local_02' 'Local_03' 'Local_04' 'Local_05' 'Local_06'
 'Local_07' 'Local_08' 'Local_10' 'Local_09' 'Local_11' 'Local_12']

Industry Sector :
--------------------------------------
['Mining' 'Metals' 'Others']

Accident Level :
--------------------------------------
[0 3 2 1 4]

Potential Accident Level :
--------------------------------------
[3 2 0 1 4]

Gender :
--------------------------------------
['Male' 'Female']

Employee or Third Party :
--------------------------------------
['Third Party' 'Employee' 'Third Party (Remote)']

Critical Risk :
--------------------------------------
['Pressed' 'Pressurized Systems' 'Manual Tools' 'Others'
 'Fall prevention (same level)' 'Chemical substances' 'Liquid Metal'
 'Electrical installation' 'Confined space'
 'Pressurized Systems / Chemical Substances'
 'Blocking and isolation of energies' 'Suspended Loads' 'Poll' 'Cut'
 'Fall' 'Bees' 'Fall prevention' '\nNot applicable' 'Traffic' 'Projection'
 'Venomous Animals' 'Plates' 'Projection/Burning' 'remains of choco'
 'Vehicles and Mobile Equipment' 'Projection/Choco' 'Machine Protection'
 'Power lock' 'Burn' 'Projection/Manual Tools'
 'Individual protection equipment' 'Electrical Shock'
 'Projection of fragments']

month :
--------------------------------------
[ 1  2  3  4  5  6  7  8  9 10 11 12]

year :
--------------------------------------
[2016 2017]

Observations:

  1. For Columns "Accident Level" and "Potential Accident Level", changed values to numeric.

2c.3 Univariate Analysis

Univariate Analysis helps in examining the distribution and summary statistics of a single variable. The following graphs show a count plot and a pie diagram for the variables Countries, Local cities, Industry sector, Accident Level, Potential Accident Level, Gender, Category of employees, critical risk, month, year that have been affected by the accidents.

In [35]:
#Function to draw count plot.
def drawcountplot(column):
    # Create the countplot
    ax = sns.countplot(x=column, data=data)

    plt.title(column)
    
        # Display the plot
    # Get current figure using plt.gcf()
    fig = plt.gcf()
    fig.set_size_inches((10, 5))
    
    # Get bar heights (counts)
    counts = [patch.get_height() for patch in ax.containers[0].patches]

    # Add text labels above bars (adjust y-position as needed)
    for i, (x, count) in enumerate(zip(ax.containers[0].patches, counts)):
      y_pos = count + 0.1  # Adjust y-position to avoid overlapping bars
      ax.text(x.get_x() + x.get_width() / 2, y_pos, str(count), ha='center', va='bottom')

    if(column=='Critical Risk'):
        plt.xticks(rotation=90)
    
    plt.show()
In [36]:
def draw_count_plot(df,col):
    if col not in df.columns:
        raise ValueError(f"Column '{col}' not found in the DataFrame.")

    plt.figure(figsize=(20, 15))
    
    # Plotting countplot
    plt.subplot(2, 2, 1)
    sns.countplot(data=df, x=col, palette="pastel",order=df[col].value_counts().index)
    plt.title(col)
    
    # Plotting pie chart
    plt.subplot(2, 2, 2)
    plt.pie(df[col].value_counts(), autopct="%.2f", labels=df[col].value_counts().index, shadow=True, startangle=-135)
    plt.title(col)
    
    plt.show()

Printing all univariate graphs

In [37]:
for col_name in data.columns:
    if(col_name!='Date' and col_name!='Description'):
        print(col_name)
        draw_count_plot(data, col_name)
Countries
Local
Industry Sector
Accident Level
Potential Accident Level
Gender
Employee or Third Party
Critical Risk
month
year
In [38]:
for col_name in data.columns:
    if(col_name!='Date' and col_name!='Description'):
        drawcountplot(col_name)

Observations:

  1. Maximum accidents happened in Country_01.
  2. Local_03 has recorded maximum number of accidents.
  3. This is followed by Local-05, Local-01 and so on.
  4. We can say that the number of accidents in Mining Industry is considerably more than that in the Metal Industry, therefore mining job is more risky than the latter.
  5. Maximum accidents belongs to accident level I.
  6. Maximum accidents belongs to potential accident level IV.
  7. Maximum accidents happened for Male.
  8. Almost equal accidents happened for both Third Party and Employee.
  9. Most of the Critical Risks are classified as 'Others' that is almost 50% of the dataset, This is followed by Pressed, Manual tools, Chemical substances, Cut etc..
  10. Maximum accidents happened in 2nd month which is February.
  11. Maximum accidents happened in the year 2016 than 2017.

one-hot encoding:

One-hot encoding is a process used to convert categorical variables into a numerical format that can be provided to machine learning algorithms to improve model performance. For each unique category in the categorical variable, a new binary column is created. If an observation belongs to a particular category, the corresponding binary column is marked as 1, while all other binary columns are marked as 0. Here we are encoding columns 'Countries', 'Industry Sector','Gender', 'Employee or Third Party'

In [39]:
for col_name in data.columns:
    print(col_name)
Date
Countries
Local
Industry Sector
Accident Level
Potential Accident Level
Gender
Employee or Third Party
Critical Risk
Description
month
year
In [40]:
category_cols = ['Countries', 'Industry Sector','Gender', 'Employee or Third Party']
encoded_data = pd.get_dummies(data, columns=category_cols, dtype=int)
In [41]:
encoded_data.info()
<class 'pandas.core.frame.DataFrame'>
Index: 411 entries, 0 to 424
Data columns (total 19 columns):
 #   Column                                        Non-Null Count  Dtype         
---  ------                                        --------------  -----         
 0   Date                                          411 non-null    datetime64[ns]
 1   Local                                         411 non-null    object        
 2   Accident Level                                411 non-null    int64         
 3   Potential Accident Level                      411 non-null    int64         
 4   Critical Risk                                 411 non-null    object        
 5   Description                                   411 non-null    object        
 6   month                                         411 non-null    int32         
 7   year                                          411 non-null    int32         
 8   Countries_Country_01                          411 non-null    int64         
 9   Countries_Country_02                          411 non-null    int64         
 10  Countries_Country_03                          411 non-null    int64         
 11  Industry Sector_Metals                        411 non-null    int64         
 12  Industry Sector_Mining                        411 non-null    int64         
 13  Industry Sector_Others                        411 non-null    int64         
 14  Gender_Female                                 411 non-null    int64         
 15  Gender_Male                                   411 non-null    int64         
 16  Employee or Third Party_Employee              411 non-null    int64         
 17  Employee or Third Party_Third Party           411 non-null    int64         
 18  Employee or Third Party_Third Party (Remote)  411 non-null    int64         
dtypes: datetime64[ns](1), int32(2), int64(13), object(3)
memory usage: 61.0+ KB
In [42]:
encoded_data.head()
Out[42]:
Date Local Accident Level Potential Accident Level Critical Risk Description month year Countries_Country_01 Countries_Country_02 Countries_Country_03 Industry Sector_Metals Industry Sector_Mining Industry Sector_Others Gender_Female Gender_Male Employee or Third Party_Employee Employee or Third Party_Third Party Employee or Third Party_Third Party (Remote)
0 2016-01-01 Local_01 0 3 Pressed While removing the drill rod of the Jumbo 08 f... 1 2016 1 0 0 0 1 0 0 1 0 1 0
1 2016-01-02 Local_02 0 3 Pressurized Systems During the activation of a sodium sulphide pum... 1 2016 0 1 0 0 1 0 0 1 1 0 0
2 2016-01-06 Local_03 0 2 Manual Tools In the sub-station MILPO located at level +170... 1 2016 1 0 0 0 1 0 0 1 0 0 1
3 2016-01-08 Local_04 0 0 Others Being 9:45 am. approximately in the Nv. 1880 C... 1 2016 1 0 0 0 1 0 0 1 0 1 0
4 2016-01-10 Local_04 3 3 Others Approximately at 11:45 a.m. in circumstances t... 1 2016 1 0 0 0 1 0 0 1 0 1 0

Bi-variate Analysis

Bivariate analysis is a statistical method used to examine the relationship between two variables. It helps to understand whether there is an association or correlation between the two variables.

In [43]:
def bivariate_analysis(x_col, hue_col, hue_order_col, data):
    plt.figure(figsize=(12,5))
    ax = sns.countplot(x=data[x_col], hue=data[hue_col], hue_order=data[hue_order_col].value_counts().sort_index().index, palette='pastel', edgecolor='.4', saturation=1)

    total = sum(data[x_col].value_counts())
    for p in ax.patches:
        ax.annotate('{}'.format(p.get_height()), 
                    (p.get_x(), p.get_height()),
                    size=12,
                    xytext = (0, 3), 
                    textcoords = 'offset points')
    
    title=hue_col+" by "+x_col
    plt.title(title);
    plt.ylabel('Count');
    plt.legend(loc='upper right')

Generating bi-variate graphs of different features with Accident Level

In [44]:
bi_variate_columns=['Countries', 'Local', 'Industry Sector', 'Gender', 'Employee or Third Party','month','year'   ]
for col_name in data.columns:
    if(col_name in bi_variate_columns):
        bivariate_analysis(col_name,'Accident Level', 'Accident Level', data )

Bi-variate analysis for Accident Levels by Critical Risk

In [45]:
plt.figure(figsize=(10,22))
ax = sns.countplot(y = data['Critical Risk'], hue=data['Accident Level'], hue_order=data['Accident Level'].value_counts().sort_index().index, palette='pastel', edgecolor='.4', saturation=1)
plt.title('Accident level counts by Critical Risk');
plt.ylabel('Count');
plt.legend(loc='upper right')
Out[45]:
<matplotlib.legend.Legend at 0x283804650>
In [46]:
bivariate_analysis('Gender', 'Employee or Third Party','Employee or Third Party', data )
In [47]:
bivariate_analysis('Countries', 'Local','Local', data )
In [48]:
bivariate_analysis('Accident Level', 'Local','Local', data )

Observations:

  1. We can observe that Country_01 has a higher number of accidents, while Country_03 has fewer accidents compared to Country_01 and Country_02. Country_03 'level I' accidents counts is more compared to country_01 and country_02 but less severe accidents.
  2. We can observe that most accidents occur in Local_03.
  3. We can observe most accidents happen in the Mining Sector, while fewer accidents occur in other sectors.
  4. We can observe that male employees have more accidents than female employees.
  5. We can observe that fewer accidents happen with Third Party (Remote) compared to Employee and Third Party.
  6. We can observe that more accidents occurred in the first six months.
  7. We can observe that more accidents occurred in 2016 compared to 2017.
  8. We can observe that there are more male Employees, Third Party workers, and Third Part (Remote) workers compared to female Employees, Third Party workers, and Third Part (Remote) workers.
  9. We can see that In Country_01, maximum Type I accidents are happening in Local_03.
In [49]:
# Correlation
le = LabelEncoder()
df_enc = data.apply(le.fit_transform)

plt.figure(figsize=(12,12))
plt.title('Correlation_Matrix', fontsize=20)
sns.heatmap(df_enc.corr(), square=True, cmap='twilight', annot=True, linewidth=0.2);

Observations:

  1. Country_01 has highest level IV accidents.
  2. Country_02 has moderate accidents across all the levels.
  3. Country_03 has more accidents of 'level I' than other levels.
  4. Local_03 (which also belongs to Country_01) is where most of the accidents happen
  5. In Mining, IV and V category accidents are happening more than Metals industry.
  6. Countries & Locals are highly co-related. Accident Level & Potential Accident Levels are co-related but these correlation does not provide significant outcomes.
In [50]:
# Count of Accidents grouped by Accident Level and Potential accident level
plt.figure(figsize = (16,7))
sns.heatmap(pd.crosstab(data['Accident Level'], data['Critical Risk']), square=True, cmap='PiYG', annot=True, linewidth=0.1);

Observations:

  1. There is not much correlation between both columns. It is difficult to draw exact conclusion from above. Reason is that Type I (0) is related with multiple potential accident level.

Accident Levels by month

In [51]:
ct = pd.crosstab(columns=data['Accident Level'],index=data['month'])
ax = ct.plot(kind="bar",stacked=False,figsize=(13,6))
ax.set_ylabel('No. of accidents')
ax.set_xlabel('Month')
Out[51]:
Text(0.5, 0, 'Month')

Observations:

  1. Maximum accidents happened between 1st month to 6th month.

Step 3: Data preprocessing (NLP Preprocessing techniques) [ 7 points ]

There are following ways for Data preprocessing in NLP:

  1. Text cleaning
  2. Tokenization
  3. Normalization (Stemming & Lemmatization)
In [52]:
data['Description']
Out[52]:
0      While removing the drill rod of the Jumbo 08 f...
1      During the activation of a sodium sulphide pum...
2      In the sub-station MILPO located at level +170...
3      Being 9:45 am. approximately in the Nv. 1880 C...
4      Approximately at 11:45 a.m. in circumstances t...
                             ...                        
420    Being approximately 5:00 a.m. approximately, w...
421    The collaborator moved from the infrastructure...
422    During the environmental monitoring activity i...
423    The Employee performed the activity of strippi...
424    At 10:00 a.m., when the assistant cleaned the ...
Name: Description, Length: 411, dtype: object
In [53]:
data['Description'][2]
Out[53]:
'In the sub-station MILPO located at level +170 when the collaborator was doing the excavation work with a pick (hand tool), hitting a rock with the flat part of the beak, it bounces off hitting the steel tip of the safety shoe and then the metatarsal area of \u200b\u200bthe left foot of the collaborator causing the injury.'
In [54]:
stop_words = set(stopwords.words("english"))
print(stop_words)
{"couldn't", 'll', 'myself', "mustn't", 'down', 'weren', 'had', 'is', 'against', 'who', 'her', 'were', 'here', 'they', 'some', 'you', 'each', 'this', 'no', 'most', 'haven', 'such', 'there', 'further', 've', 'didn', 'at', 'it', 'then', 'other', 'don', 'shan', "should've", 'after', "shan't", 'whom', 'in', "hasn't", 'i', 'out', 'not', 'into', 'above', "needn't", 'my', "you've", 'own', 'we', 'am', 'm', 'will', 'off', "haven't", 'him', 'ours', 'but', 's', 'as', 'what', 'ma', 'for', 'yourself', 'was', 'himself', 'doing', 'which', 'be', 'won', 'isn', "wasn't", "you'll", 'has', 'do', 'than', 'few', "hadn't", "shouldn't", 'or', 'does', 'our', 'me', "didn't", 'before', 'again', 'should', "weren't", 'up', 'yourselves', 'have', "doesn't", 'to', 'nor', 'now', 'hadn', 'if', 'aren', 'that', 'having', 'those', 'can', 'hasn', 'how', 'only', 'once', 'wouldn', 'the', 'theirs', 'd', 'their', 'too', 'on', 'because', 'from', 'yours', 'its', 'a', 'same', 'she', 'themselves', 'are', 'over', 'so', 'herself', 'them', 'where', 'under', "she's", 'needn', "that'll", 'your', 'and', 'o', 'did', 'of', 'between', "wouldn't", 'being', 'y', 'why', "you're", 'ourselves', 'been', 'by', 'both', 'about', 'any', 'with', 'hers', 'these', 't', "mightn't", 'an', 're', "you'd", 'all', 'shouldn', "it's", 'more', 'mustn', 'when', "don't", "isn't", 'mightn', 'during', 'couldn', 'doesn', 'just', 'while', 'his', 'through', 'he', 'until', "aren't", 'itself', 'very', "won't", 'ain', 'below', 'wasn'}

Observations:

  1. Before applying the NLP data pre-processing techniques, we can see that the there are text in Capital letters and small letters.
  2. We can observe that there are many stop words used in the description like a, it, she etc.
In [55]:
# Function to remove stop words (using for loop)
def remove_stopwords(text):
  tokens = text.split()
  filtered_words = [word for word in tokens if word not in stop_words]
  return ' '.join(filtered_words)

# Function to remove Punctuation
def remove_punctuation(x):
  exclude = set(string.punctuation)
  return ''.join(ch for ch in x if ch not in exclude)


# Function for nlp data pre processing
def nlpDataPreProcessing(dataframe, column):
    #lower case
    print("1. converting the description into lower case")
    dataframe[column]=dataframe[column].str.lower()
    #remove punctuation
    print("2. Removing punctuation from description")
    dataframe[column] = dataframe[column].apply(remove_punctuation)
    #remove stopwords
    print("3. Removing stop words")
    dataframe[column] = dataframe[column].apply(remove_stopwords)
    
# Lemmatization
def lemmatization(text):

    # Initialize the object for Lemmatizer class
    lemmatizer = nltk.stem.WordNetLemmatizer()

    # Set the stopwords to English
    stopwords = nltk.corpus.stopwords.words('english')

    # Normalize the text in order deal with accented words and unicodes
    text = (unicodedata.normalize('NFKD', text).encode('ascii', 'ignore').decode('utf-8', 'ignore').lower())

    # Consider only alphabets and numbers from the text
    words = re.sub(r'[^a-zA-Z.,!?/:;\"\'\s]', '', text).split()

    # Consider the words which are not in stopwords of english and lemmatize them
    lemmatizer = nltk.stem.WordNetLemmatizer()
    lems = [lemmatizer.lemmatize(i) for i in words if i not in stopwords]

    # #remove non-alphabetical characters like '(', '.' or '!'
    # alphas = [i for i in lems if (i.isalpha() or i.isnumeric()) and (i not in stopwords)]

    words = [w for w in lems if len(w)>2]

    return words
In [56]:
nlpDataPreProcessing(data,'Description')
1. converting the description into lower case
2. Removing punctuation from description
3. Removing stop words
In [57]:
data['Description'].head()
Out[57]:
0    removing drill rod jumbo 08 maintenance superv...
1    activation sodium sulphide pump piping uncoupl...
2    substation milpo located level 170 collaborato...
3    945 approximately nv 1880 cx695 ob7 personnel ...
4    approximately 1145 circumstances mechanics ant...
Name: Description, dtype: object

Observations:

  1. Successfully converted the description into lower case.
  2. Successfully removed punctuation from Description.
  3. Successfully removed stop words from Description.

Generating tokens from Description. These tokens will be used for generating 1-gram, 2-gram and n-gram.

In [58]:
#Generating tokens
tokens = lemmatization(' '.join(data['Description'].sum().split()))
print(tokens)
['removing', 'drill', 'rod', 'jumbo', 'maintenance', 'supervisor', 'proceeds', 'loosen', 'support', 'intermediate', 'centralizer', 'facilitate', 'removal', 'seeing', 'mechanic', 'support', 'one', 'end', 'drill', 'equipment', 'pull', 'hand', 'bar', 'accelerate', 'removal', 'moment', 'bar', 'slide', 'point', 'support', 'tightens', 'finger', 'mechanic', 'drilling', 'bar', 'beam', 'jumboactivation', 'sodium', 'sulphide', 'pump', 'piping', 'uncoupled', 'sulfide', 'solution', 'designed', 'area', 'reach', 'maid', 'immediately', 'made', 'use', 'emergency', 'shower', 'directed', 'ambulatory', 'doctor', 'later', 'hospital', 'note', 'sulphide', 'solution', 'gram', 'litersubstation', 'milpo', 'located', 'level', 'collaborator', 'excavation', 'work', 'pick', 'hand', 'tool', 'hitting', 'rock', 'flat', 'part', 'beak', 'bounce', 'hitting', 'steel', 'tip', 'safety', 'shoe', 'metatarsal', 'area', 'left', 'foot', 'collaborator', 'causing', 'injury', 'approximately', 'personnel', 'begin', 'task', 'unlocking', 'soquet', 'bolt', 'bhb', 'machine', 'penultimate', 'bolt', 'identified', 'hexagonal', 'head', 'worn', 'proceeding', 'cristobal', 'auxiliary', 'assistant', 'climb', 'platform', 'exert', 'pressure', 'hand', 'dado', 'key', 'prevent', 'coming', 'bolt', 'moment', 'two', 'collaborator', 'rotate', 'lever', 'anticlockwise', 'direction', 'leaving', 'key', 'bolt', 'hitting', 'palm', 'left', 'hand', 'causing', 'injuryapproximately', 'circumstance', 'mechanic', 'anthony', 'group', 'leader', 'eduardo', 'eric', 'fernandezinjuredthe', 'three', 'company', 'impromec', 'performed', 'removal', 'pulley', 'motor', 'pump', 'zaf', 'marcy', 'length', 'weight', 'locked', 'proceed', 'heating', 'pulley', 'loosen', 'come', 'fall', 'distance', 'meter', 'high', 'hit', 'instep', 'right', 'foot', 'worker', 'causing', 'injury', 'describedunloading', 'operation', 'ustulado', 'bag', 'need', 'unclog', 'discharge', 'mouth', 'silo', 'truck', 'performing', 'procedure', 'maneuver', 'unhooking', 'hose', 'without', 'total', 'depressurisation', 'mouth', 'projecting', 'ustulado', 'powder', 'collaborator', 'caused', 'irritation', 'eyescollaborator', 'report', 'street', 'holding', 'left', 'hand', 'volumetric', 'balloon', 'slipped', 'placing', 'hand', 'ground', 'volumetric', 'balloon', 'ended', 'breaking', 'caused', 'small', 'wound', 'left', 'handapproximately', 'mechanic', 'technician', 'jose', 'tecnomin', 'verified', 'transmission', 'belt', 'pump', 'acid', 'plant', 'proceeded', 'turn', 'pulley', 'manually', 'unexpectedly', 'instant', 'electrician', 'supervisor', 'miguel', 'eka', 'mining', 'grab', 'transmission', 'belt', 'verify', 'tension', 'point', 'finger', 'trapsemployee', 'sitting', 'resting', 'area', 'level', 'raise', 'bore', 'suffered', 'sudden', 'illness', 'falling', 'suffering', 'excoriation', 'facemoment', 'forklift', 'operator', 'went', 'manipulate', 'big', 'bag', 'bioxide', 'section', 'front', 'ladder', 'lead', 'area', 'manual', 'displacement', 'splashed', 'spent', 'height', 'forehead', 'fissure', 'pipe', 'subsequently', 'spilling', 'left', 'eye', 'collaborator', 'went', 'nearby', 'eyewash', 'cleaning', 'immediately', 'medical', 'centerinstalling', 'segment', 'polyurethane', 'pulley', 'protective', 'lyner', 'xxcm', 'weighing', 'head', 'pulley', 'ore', 'winch', 'pulley', 'rotated', 'compress', 'lyner', 'inside', 'channel', 'fall', 'housing', 'rubbing', 'right', 'side', 'worker', 'hip', 'generating', 'injury', 'describedpreparing', 'rice', 'lunch', 'day', 'moving', 'pot', 'weight', 'including', 'content', 'evacuate', 'residual', 'water', 'cooking', 'rice', 'positioning', 'pot', 'jaba', 'tilt', 'backwards', 'spilling', 'hot', 'water', 'cook', 'leg', 'cook', 'immediately', 'event', 'applies', 'first', 'aid', 'pouring', 'cold', 'water', 'area', 'injury', 'medical', 'post', 'evaluationcollaborator', 'report', 'working', 'ustulacion', 'realized', 'cyclone', 'duct', 'obstructed', 'opened', 'door', 'try', 'unclog', 'material', 'detached', 'projected', 'towards', 'employee', 'causing', 'small', 'burn', 'right', 'heelmoments', 'operator', 'jumbo', 'tried', 'energize', 'equipment', 'proceed', 'installation', 'split', 'set', 'intersection', 'remove', 'lock', 'opening', 'electric', 'board', 'lifting', 'thermomagnetic', 'key', 'make', 'phase', 'ground', 'phase', 'contact', 'panel', 'shell', 'producing', 'flash', 'reach', 'operator', 'causing', 'injury', 'describeddue', 'accumulation', 'waelz', 'conveyor', 'trailer', 'filter', 'employee', 'performed', 'cleaning', 'shutter', 'using', 'air', 'lance', 'surprised', 'fall', 'product', 'door', 'passing', 'neck', 'collar', 'aramid', 'jacket', 'causing', 'burn', 'neck', 'shoulderemployee', 'working', 'thermal', 'shock', 'caused', 'splash', 'zinc', 'direction', 'employee', 'despite', 'using', 'indicated', 'ppe', 'hit', 'small', 'spatter', 'passed', 'facila', 'hood', 'small', 'burn', 'face', 'regionrp', 'level', 'circumstance', 'worker', 'company', 'performing', 'task', 'diamond', 'drilling', 'assistant', 'jhonatan', 'injured', 'nilton', 'preparing', 'increase', 'perforation', 'pipe', 'located', 'scaffolding', 'jhonatan', 'lift', 'one', 'end', 'tube', 'support', 'pulley', 'equipment', 'frame', 'end', 'working', 'scaffolding', 'moment', 'nilton', 'lift', 'end', 'pipe', 'scaffolding', 'position', 'frame', 'upper', 'part', 'pipe', 'come', 'pulley', 'falling', 'striking', 'right', 'hand', 'worker', 'jhonatan', 'bolt', 'lateral', 'part', 'frame', 'causing', 'injury', 'describeddue', 'overheating', 'bar', 'row', 'cell', 'spark', 'produced', 'projected', 'manages', 'reach', 'chief', 'guard', 'corridor', 'producing', 'first', 'degree', 'burn', 'neckauxiliary', 'wheel', 'cathode', 'crane', 'changed', 'area', 'bearing', 'heated', 'hit', 'hammer', 'chisel', 'one', 'end', 'bearing', 'track', 'detachment', 'bearing', 'piece', 'occurred', 'impacting', 'thigh', 'right', 'leg', 'producing', 'cut', 'ambulance', 'called', 'transferred', 'clinicworker', 'manuel', 'making', 'disconnection', 'power', 'cable', 'gate', 'intersection', 'manco', 'street', 'cajamarquilla', 'order', 'remove', 'circumstance', 'jose', 'worker', 'company', 'removing', 'rope', 'tied', 'body', 'gate', 'yield', 'fall', 'pulling', 'warning', 'post', 'hit', 'helmet', 'standing', 'side', 'operator', 'samuel', 'open', 'container', 'subsequent', 'loading', 'silver', 'concentrate', 'opened', 'first', 'gate', 'afterwards', 'try', 'open', 'second', 'door', 'product', 'opening', 'latter', 'first', 'one', 'open', 'impact', 'handle', 'safety', 'lens', 'generates', 'injury', 'left', 'cheekbone', 'face', 'operatorraise', 'chamber', 'operator', 'assistant', 'removed', 'drilling', 'bar', 'drilling', 'machine', 'weight', 'approx', 'holding', 'top', 'stroke', 'assisted', 'jib', 'move', 'horizontally', 'operator', 'jib', 'bottom', 'slide', 'moving', 'top', 'drill', 'bar', 'causing', 'assistant', 'bar', 'enforce', 'assistant', 'hand', 'bar', 'piston', 'equipmentaligning', 'right', 'bracket', 'tower', 'releasing', 'tension', 'applied', 'tirford', 'pushing', 'lever', 'towards', 'tension', 'release', 'point', 'return', 'mechanical', 'effect', 'overcoming', 'resistance', 'lineman', 'operator', 'reshaping', 'hand', 'assistant', 'beating', 'assistant', 'frontal', 'regionloosening', 'truck', 'steering', 'cylinder', 'bolt', 'using', 'power', 'cable', 'socket', 'force', 'exerted', 'favor', 'equipment', 'bolt', 'suddenly', 'retired', 'employee', 'hit', 'hand', 'structure', 'equipment', 'causing', 'injuryoperator', 'deslaminadora', 'section', 'unlocking', 'sheet', 'zinc', 'stuck', 'enter', 'slide', 'stacking', 'table', 'requires', 'support', 'mollares', 'help', 'hold', 'sheet', 'place', 'entry', 'chute', 'slide', 'moment', 'releasing', 'blade', 'tilted', 'brushed', 'mollaress', 'left', 'leg', 'collaborator', 'went', 'nearby', 'eyewash', 'cleaning', 'immediately', 'medical', 'centeroperator', 'willing', 'manually', 'displace', 'zinc', 'sheet', 'adhered', 'aluminum', 'cathode', 'moment', 'blade', 'detached', 'blade', 'released', 'cathode', 'bending', 'grazing', 'collaborator', 'right', 'hand', 'producing', 'small', 'cut', 'knuckle', 'finger', 'worker', 'made', 'use', 'glove', 'leather', 'worker', 'transferred', 'medical', 'unit', 'first', 'aidend', 'lunch', 'enabled', 'place', 'side', 'winche', 'control', 'room', 'get', 'short', 'walk', 'slip', 'sits', 'floor', 'making', 'contact', 'left', 'knee', 'taking', 'importance', 'rest', 'guard', 'guard', 'finished', 'safety', 'communicates', 'fact', 'reason', 'derived', 'natclar', 'attentionend', 'rock', 'break', 'intersection', 'ramp', 'opening', 'access', 'ventilation', 'chimney', 'master', 'loader', 'identifies', 'rock', 'mesh', 'proceeding', 'unload', 'end', 'decides', 'verify', 'still', 'remains', 'positioning', 'line', 'fire', 'time', 'fragment', 'rock', 'fall', 'xxcm', 'cocada', 'mesh', 'impacting', 'lens', 'helmet', 'causing', 'injuryworker', 'carried', 'work', 'level', 'stop', 'placed', 'metal', 'mesh', 'basket', 'soil', 'half', 'scissor', 'mesh', 'fall', 'hit', 'back', 'right', 'handusing', 'griff', 'wrench', 'unscrew', 'rod', 'probe', 'key', 'came', 'move', 'pressing', 'employee', 'finger', 'probeplant', 'operator', 'semikneeling', 'lifting', 'lid', 'gate', 'distributor', 'box', 'secondary', 'mill', 'right', 'knee', 'slip', 'due', 'presence', 'debris', 'spilled', 'platform', 'floor', 'grating', 'gave', 'extra', 'effort', 'left', 'leg', 'generating', 'muscle', 'contracturelevel', 'access', 'time', 'engineer', 'trainee', 'planamieto', 'entered', 'verify', 'amount', 'split', 'set', 'placed', 'scissor', 'support', 'holding', 'notebook', 'pen', 'left', 'hand', 'inspecting', 'roof', 'work', 'lost', 'balance', 'stepping', 'rock', 'holding', 'right', 'hand', 'rock', 'floor', 'causing', 'injury', 'worker', 'time', 'accident', 'wore', 'glove', 'use', 'made', 'difficult', 'take', 'notesworker', 'yaranga', 'working', 'barretilla', 'stop', 'level', 'unloading', 'metal', 'mesh', 'basket', 'ampoloader', 'operator', 'juan', 'barretilla', 'embedded', 'safety', 'boot', 'reacting', 'immediately', 'worker', 'removing', 'limb', 'force', 'managing', 'release', 'foot', 'producing', 'wound', 'right', 'footapproximately', 'circumstance', 'shotcrete', 'launched', 'obb', 'finishing', 'launch', 'first', 'mixkret', 'assistant', 'alpha', 'albertico', 'asks', 'operator', 'mixkret', 'jhony', 'move', 'mixkret', 'access', 'finding', 'cockpit', 'mixkret', 'operator', 'launcher', 'team', 'danon', 'asks', 'come', 'team', 'started', 'noticed', 'danon', 'injured', 'imprisoned', 'team', 'height', 'left', 'rear', 'rim', 'hastial', 'laboremployee', 'clearing', 'pipe', 'tapped', 'right', 'thumb', 'flange', 'causing', 'little', 'traumareplacing', 'telescopic', 'expansion', 'joint', 'hdpe', 'pipe', 'storm', 'drainage', 'pumping', 'system', 'report', 'piece', 'involuntarily', 'moved', 'positioned', 'holder', 'pressing', 'finger', 'holder', 'causing', 'wound', 'right', 'chemowithdrawal', 'kelly', 'bar', 'conductive', 'bar', 'length', 'diameter', 'equipment', 'perforation', 'part', 'two', 'worker', 'one', 'positioned', 'low', 'part', 'tie', 'bar', 'injured', 'one', 'position', 'upper', 'part', 'hold', 'bar', 'positioning', 'bar', 'platform', 'lose', 'control', 'bar', 'moving', 'finger', 'right', 'hand', 'pulley', 'frame', 'time', 'accident', 'worker', 'wearing', 'safety', 'glove', 'drill', 'rig', 'blockedstarting', 'activity', 'removing', 'coil', 'electric', 'cable', 'warehouse', 'help', 'forklift', 'truck', 'operator', 'notice', 'beehive', 'due', 'movement', 'coil', 'bee', 'excited', 'realizing', 'fact', 'operator', 'turned', 'equipment', 'left', 'area', 'people', 'passing', 'stungpreuse', 'inspection', 'jumbo', 'check', 'list', 'equipment', 'operator', 'equipment', 'find', 'behind', 'seat', 'plastic', 'bottle', 'filled', 'liquid', 'apparently', 'mineral', 'water', 'without', 'label', 'labeling', 'take', 'bottle', 'take', 'small', 'sip', 'liquid', 'expelling', 'immediately', 'noticing', 'water', 'immediately', 'proceeds', 'wash', 'enough', 'water', 'transferred', 'medical', 'center', 'attention', 'liquid', 'contact', 'esengrasante', 'product', 'equipment', 'machinery', 'low', 'toxicitymaintenance', 'flyght', 'pump', 'rotor', 'oil', 'pressure', 'lubrication', 'chamber', 'caused', 'chamber', 'cover', 'projected', 'towards', 'employee', 'face', 'striking', 'superficially', 'forehead', 'causing', 'injuryapprox', 'leakage', 'sulfur', 'dioxide', 'section', 'due', 'water', 'seal', 'blowing', 'due', 'overpressure', 'acid', 'plant', 'moment', 'collaborator', 'cormei', 'company', 'eissa', 'cosapi', 'work', 'near', 'impacted', 'area', 'evacuated', 'medical', 'center', 'care', 'returned', 'usual', 'workperforming', 'cutting', 'mesh', 'protruding', 'gable', 'work', 'assistant', 'loader', 'positioned', 'floor', 'using', 'portable', 'ladder', 'held', 'base', 'master', 'loader', 'time', 'loader', 'assistant', 'loses', 'balance', 'falling', 'held', 'mesh', 'hand', 'hanging', 'floor', 'causing', 'injuryoperator', 'center', 'demag', 'performing', 'maintenance', 'transporting', 'hydraulic', 'cylinder', 'help', 'another', 'operator', 'official', 'unbalanced', 'coming', 'cylinder', 'carried', 'press', 'finger', 'left', 'thumb', 'pillar', 'support', 'oven', 'specified', 'figurestart', 'neutral', 'leaching', 'process', 'employee', 'jhonatan', 'proceeds', 'open', 'air', 'valve', 'tank', 'airlift', 'circumstance', 'process', 'solution', 'return', 'chimney', 'solution', 'coming', 'contact', 'arm', 'right', 'foottime', 'two', 'assistant', 'carrying', 'bag', 'cement', 'weighing', 'lamp', 'loader', 'suspended', 'floor', 'left', 'foot', 'one', 'assistant', 'slid', 'hit', 'edge', 'batonoperator', 'cleaned', 'spatula', 'spear', 'one', 'window', 'boiler', 'time', 'force', 'action', 'hit', 'window', 'frame', 'causing', 'injury', 'little', 'finger', 'left', 'hand', 'operator', 'epp', 'boiler', 'cleaninglocomotive', 'operated', 'maperu', 'personnel', 'directed', 'wagon', 'loaded', 'ore', 'waste', 'bin', 'next', 'waste', 'bin', 'patrol', 'car', 'back', 'wagon', 'moment', 'passed', 'change', 'track', 'left', 'rear', 'wheel', 'patrol', 'car', 'leaf', 'rail', 'advancing', 'locomotive', 'leaving', 'patrol', 'car', 'tilted', 'ahead', 'assistant', 'motorist', 'traveled', 'alone', 'patrol', 'car', 'remained', 'inside', 'structure', 'suffered', 'minor', 'bruisespit', 'level', 'radial', 'drilling', 'performed', 'negative', 'hole', 'simba', 'ith', 'equipment', 'assistant', 'equipment', 'operator', 'made', 'change', 'drill', 'bit', 'metal', 'bar', 'hammer', 'released', 'coupling', 'rotation', 'unit', 'abruptly', 'withdrawing', 'hand', 'hit', 'back', 'right', 'hand', 'team', 'structure', 'time', 'accident', 'team', 'paidtime', 'worker', 'another', 'partner', 'preparing', 'move', 'oil', 'cylinder', 'gallon', 'mobile', 'platform', 'mounted', 'rail', 'platform', 'weighing', 'approximately', 'derailed', 'leaf', 'rail', 'order', 'place', 'platform', 'rail', 'worker', 'lift', 'platform', 'instant', 'right', 'hand', 'one', 'trapped', 'rail', 'platform', 'structure', 'held', 'metallic', 'tube', 'protruding', 'platform', 'accident', 'caused', 'bruised', 'wound', 'index', 'finger', 'right', 'hand', 'fracture', 'time', 'accident', 'wore', 'leathertype', 'safety', 'glovesoperator', 'feeding', 'bag', 'big', 'bag', 'containing', 'scrap', 'sheet', 'lifting', 'loaded', 'bag', 'released', 'hook', 'hoist', 'making', 'abrupt', 'contact', 'liquid', 'zinc', 'furnace', 'generating', 'explosion', 'causing', 'operator', 'hit', 'liquid', 'zinccircumstances', 'two', 'worker', 'company', 'incimmet', 'made', 'loading', 'explosive', 'using', 'equipment', 'anfoloader', 'front', 'work', 'sustained', 'shotcreterepentinamente', 'right', 'superior', 'part', 'crown', 'piece', 'rock', 'approx', 'mxmxm', 'impacting', 'basket', 'back', 'helper', 'basket', 'suspended', 'height', 'moment', 'later', 'block', 'rock', 'detached', 'wall', 'gable', 'approx', 'mxmxm', 'impact', 'ampoloader', 'team', 'part', 'block', 'injures', 'operator', 'ampoloader', 'team', 'standing', 'ground', 'equipment', 'anfoloader', 'cabin', 'protection', 'rops', 'fop', 'time', 'accident', 'worker', 'used', 'helmet', 'safety', 'boot', 'suffered', 'polyontusions', 'minor', 'scoria', 'injuriescircumstances', 'two', 'worker', 'company', 'incimmet', 'fectuaban', 'loading', 'explosive', 'using', 'equipment', 'anfoloader', 'front', 'work', 'sustained', 'shotcreterepentinamente', 'right', 'superior', 'part', 'crown', 'piece', 'rock', 'approx', 'mxmxm', 'impacting', 'basket', 'back', 'helper', 'basket', 'suspended', 'height', 'moment', 'later', 'block', 'rock', 'detached', 'wall', 'gable', 'approx', 'mxmxm', 'impact', 'ampoloader', 'team', 'part', 'block', 'injures', 'operator', 'ampoloader', 'team', 'standing', 'ground', 'equipment', 'anfoloader', 'cabin', 'protection', 'rops', 'fop', 'time', 'accident', 'worker', 'used', 'helmet', 'safety', 'boot', 'suffered', 'polyontusions', 'minor', 'scoria', 'injuriesmechanic', 'assistant', 'throwing', 'wooden', 'block', 'support', 'stabilizer', 'hiab', 'crane', 'truck', 'ground', 'descending', 'truck', 'access', 'ladder', 'arriving', 'last', 'step', 'jump', 'towards', 'ground', 'height', 'treading', 'edge', 'one', 'wooden', 'block', 'cause', 'injury', 'left', 'anklemanually', 'moving', 'steel', 'cabinet', 'disposal', 'help', 'another', 'employee', 'operator', 'finger', 'pressed', 'wall', 'cabinet', 'causing', 'injurydischarge', 'waste', 'operator', 'proceeds', 'remove', 'bag', 'hose', 'rolled', 'circumstance', 'one', 'end', 'hose', 'move', 'direction', 'face', 'driver', 'projecting', 'liquid', 'contained', 'impacting', 'ear', 'part', 'facecircumstances', 'operator', 'going', 'level', 'level', 'noticed', 'hydraulic', 'pump', 'inspection', 'cover', 'approx', 'fall', 'stopped', 'equipment', 'activates', 'cat', 'climb', 'upper', 'part', 'equipment', 'moment', 'accommodated', 'cover', 'slide', 'middle', 'finger', 'causing', 'injuryinstalling', 'ripper', 'pin', 'tractor', 'dtn', 'ripper', 'support', 'arm', 'slide', 'pressing', 'second', 'third', 'finger', 'right', 'hand', 'base', 'ripper', 'causing', 'injury', 'describedemployee', 'report', 'lowered', 'cloth', 'purification', 'arranged', 'cart', 'would', 'grab', 'pipe', 'pressing', 'left', 'hand', 'cloth', 'cartend', 'loading', 'explosive', 'work', 'front', 'master', 'loader', 'enters', 'verify', 'mooring', 'blasting', 'accessory', 'retiring', 'top', 'hears', 'sound', 'fragment', 'rock', 'rolling', 'support', 'mesh', 'directs', 'gaze', 'towards', 'crown', 'vertical', 'form', 'point', 'small', 'fragment', 'rock', 'xxcm', 'pass', 'opening', 'mesh', 'sustaining', 'impact', 'forehead', 'time', 'event', 'collaborator', 'used', 'helmet', 'safety', 'lens', 'front', 'support', 'top', 'sacrifice', 'mesh', 'opening', 'support', 'mesh', 'employee', 'performing', 'adjustment', 'tightening', 'operation', 'cutter', 'blade', 'worked', 'neglected', 'key', 'slip', 'causing', 'blade', 'equipment', 'hit', 'causing', 'blunt', 'cut', 'right', 'forearmapproximately', 'circumstance', 'messrs', 'truck', 'crane', 'william', 'cruz', 'culminated', 'shipment', 'block', 'metal', 'plate', 'approximate', 'weight', 'william', 'cross', 'rigger', 'climb', 'onto', 'truck', 'remove', 'sling', 'place', 'foot', 'stretcher', 'supported', 'metal', 'plate', 'moment', 'central', 'part', 'stretcher', 'broken', 'result', 'two', 'foot', 'imprisoned', 'producing', 'injuryplacement', 'last', 'support', 'mesh', 'cloth', 'work', 'moment', 'ground', 'injured', 'collaborator', 'reached', 'electrowelded', 'mesh', 'operator', 'scissor', 'bolter', 'positioned', 'basket', 'pressing', 'mesh', 'one', 'protruding', 'end', 'mesh', 'cross', 'leather', 'glove', 'causing', 'injury', 'right', 'handemployee', 'checked', 'acid', 'leakage', 'shipping', 'area', 'hit', 'splash', 'solution', 'right', 'hemifaceemployee', 'clearing', 'liquid', 'zinc', 'pump', 'oven', 'stepped', 'platform', 'became', 'unbalanced', 'twist', 'left', 'footemployee', 'transiting', 'toward', 'cadmium', 'factory', 'near', 'tank', 'copper', 'sulphate', 'acid', 'solution', 'spilled', 'direction', 'reaching', 'leg', 'causing', 'minor', 'burnscarrying', 'activity', 'cutting', 'electrowelded', 'mesh', 'work', 'front', 'assistant', 'position', 'foot', 'one', 'end', 'mesh', 'leaving', 'end', 'free', 'moment', 'assistant', 'bend', 'make', 'cut', 'shear', 'end', 'free', 'mesh', 'return', 'inertia', 'hitting', 'partner', 'safety', 'lensrefurbishment', 'work', 'hdpe', 'pipe', 'diameter', 'two', 'worker', 'worker', 'secured', 'pipe', 'chain', 'standing', 'basket', 'ampoloader', 'raised', 'height', 'ground', 'pipe', 'slipped', 'impacted', 'arm', 'right', 'causing', 'injury', 'radius', 'right', 'armcircumstances', 'dump', 'truck', 'laden', 'ore', 'entered', 'unload', 'backwards', 'curve', 'upper', 'part', 'via', 'laquia', 'operator', 'notice', 'unevenness', 'road', 'approximately', 'one', 'meter', 'approaching', 'edge', 'overturning', 'truck', 'right', 'side', 'operator', 'traveled', 'alone', 'truck', 'made', 'use', 'safety', 'belt', 'helmet', 'glass', 'time', 'accident', 'unloading', 'process', 'two', 'square', 'accident', 'site', 'test', 'alcohotest', 'operator', 'negativeapproximately', 'level', 'circumstance', 'worker', 'company', 'rock', 'performed', 'anchorage', 'central', 'pin', 'anchoring', 'drilling', 'machine', 'diamantina', 'xrd', 'bob', 'cat', 'assistant', 'cristian', 'injured', 'made', 'adjustment', 'nut', 'central', 'bolt', 'stilson', 'key', 'simultaneously', 'jose', 'control', 'panel', 'made', 'movement', 'rotation', 'unit', 'positioning', 'clamp', 'pin', 'moment', 'frame', 'slid', 'pressing', 'thumb', 'assistant', 'left', 'hand', 'stilson', 'key', 'causing', 'described', 'injury', 'due', 'lack', 'securing', 'frame', 'fixing', 'boltscarried', 'mechanized', 'support', 'scissor', 'heavy', 'equipment', 'operator', 'pick', 'water', 'supply', 'hose', 'towards', 'drum', 'equipment', 'heading', 'towards', 'cabin', 'scissor', 'way', 'piece', 'rock', 'high', 'approx', 'displaces', 'sliding', 'right', 'foot', 'causing', 'injury', 'describedapproximately', 'supervising', 'line', 'clamping', 'pom', 'roy', 'canario', 'returning', 'thickener', 'hit', 'nose', 'metal', 'chute', 'operationemployee', 'performing', 'truck', 'unloading', 'operation', 'iron', 'bundle', 'pressed', 'right', 'finger', 'injured', 'left', 'armloading', 'two', 'blown', 'hole', 'previous', 'blasting', 'use', 'telescopic', 'ladder', 'master', 'loader', 'pull', 'ladder', 'detaching', 'upper', 'support', 'point', 'height', 'fragment', 'rock', 'projected', 'right', 'end', 'ladder', 'hitting', 'master', 'loader', 'cheekbone', 'upper', 'lip', 'producing', 'lesion', 'described', 'master', 'shipper', 'used', 'safety', 'glassesplant', 'stop', 'scheduled', 'maintenance', 'almost', 'end', 'change', 'fitting', 'hdp', 'pipe', 'diameter', 'resident', 'enters', 'work', 'zone', 'bottom', 'supervise', 'work', 'moment', 'four', 'worker', 'anchored', 'harness', 'upper', 'part', 'manipulating', 'accessory', 'tie', 'flange', 'hdp', 'pipe', 'pvc', 'diameter', 'suddenly', 'pvc', 'pipe', 'come', 'support', 'pipe', 'fine', 'material', 'tailing', 'weight', 'fall', 'height', 'meter', 'floor', 'bounce', 'imprisons', 'resident', 'engineer', 'injured', 'worker', 'lower', 'part', 'line', 'fireparking', 'equipment', 'dumper', 'maintenance', 'workshop', 'mechanic', 'asks', 'operator', 'back', 'equipment', 'washing', 'operator', 'start', 'reverse', 'gear', 'cab', 'door', 'fully', 'open', 'upon', 'reaching', 'washing', 'area', 'meter', 'behind', 'brake', 'cabin', 'door', 'close', 'untimely', 'hit', 'face', 'causing', 'minor', 'injury', 'area', 'mechanic', 'floor', 'level', 'safe', 'placecircumstances', 'two', 'worker', 'abratech', 'company', 'putty', 'work', 'inside', 'conditioning', 'tank', 'meter', 'deep', 'covered', 'platform', 'metal', 'grating', 'grating', 'upper', 'part', 'two', 'employee', 'hyt', 'company', 'carried', 'maneuver', 'transfer', 'pump', 'help', 'manual', 'tick', 'worked', 'hooked', 'beam', 'dragging', 'pump', 'metal', 'grating', 'grating', 'suddenly', 'pump', 'hooked', 'metal', 'grate', 'grating', 'trying', 'release', 'metal', 'grid', 'grating', 'fall', 'inside', 'tank', 'hit', 'diagonal', 'channel', 'inside', 'tank', 'impact', 'right', 'arm', 'one', 'worker', 'rub', 'helmet', 'second', 'worker', 'crouching', 'area', 'bomb', 'moved', 'marked', 'tape', 'lookoutaccessing', 'santa', 'novo', 'area', 'order', 'open', 'chop', 'general', 'moving', 'ahead', 'team', 'order', 'open', 'access', 'manetometer', 'came', 'across', 'area', 'steep', 'slope', 'gravel', 'presence', 'certain', 'place', 'access', 'employee', 'slipped', 'coming', 'become', 'unbalanced', 'moment', 'machete', 'left', 'hand', 'came', 'slip', 'right', 'leg', 'knee', 'causing', 'cut', 'cmperforming', 'sleeve', 'removal', 'maneuver', 'hole', 'meter', 'deep', 'general', 'silva', 'pressed', 'one', 'side', 'locking', 'nut', 'rod', 'together', 'jack', 'hold', 'entire', 'weight', 'rod', 'maneuver', 'locking', 'procedure', 'effective', 'weight', 'rod', 'secured', 'steel', 'wire', 'rope', 'probe', 'winch', 'moment', 'driller', 'pedro', 'released', 'brake', 'winch', 'inefficacy', 'locking', 'done', 'one', 'side', 'chestnut', 'without', 'aid', 'monkey', 'caused', 'sliding', 'rod', 'auxiliary', 'prepared', 'manual', 'unlocking', 'rod', 'holding', 'faucet', 'key', 'firmly', 'probe', 'tower', 'composition', 'shifted', 'stem', 'slid', 'hand', 'shifted', 'downward', 'causing', 'left', 'hand', 'strike', 'base', 'probe', 'tower', 'structure', 'causing', 'cut', 'quirodactyl', 'employee', 'taken', 'hospital', 'went', 'medical', 'care', 'wound', 'sutured', 'stitch', 'removed', 'day', 'activitiestrip', 'vehicle', 'end', 'work', 'collaborator', 'rhainer', 'stepped', 'object', 'could', 'identify', 'thus', 'coming', 'pierce', 'sole', 'boot', 'causing', 'small', 'hole', 'sole', 'left', 'foot', 'collaborator', 'perforation', 'possibly', 'due', 'stump', 'wood', 'since', 'area', 'covered', 'collaborator', 'pasture', 'grazed', 'recently', 'near', 'residenceworkshop', 'level', 'box', 'two', 'mechanic', 'manipulated', 'steel', 'plate', 'xcm', 'place', 'gutter', 'workshop', 'able', 'remove', 'scaler', 'plate', 'slide', 'restricts', 'right', 'ring', 'finger', 'gable', 'plate', 'causing', 'injury', 'collaborator', 'used', 'glove', 'time', 'accidentopens', 'suction', 'valve', 'acid', 'pump', 'cable', 'pump', 'come', 'loose', 'pressing', 'finger', 'employee', 'left', 'hand', 'tubing', 'causing', 'fracture', 'distal', 'phalanx', 'photosworker', 'carried', 'disassembly', 'scaffolding', 'body', 'pulpomatic', 'thickener', 'dismantling', 'base', 'scaffold', 'located', 'approximately', 'one', 'meter', 'high', 'floor', 'sump', 'rivet', 'anchor', 'support', 'platform', 'broken', 'causing', 'fall', 'worker', 'impacting', 'right', 'knee', 'support', 'anchored', 'one', 'horizontal', 'scaffolding', 'structureemployee', 'report', 'handling', 'air', 'conditioning', 'pressed', 'right', 'chirodactilo', 'causing', 'contusionparking', 'van', 'next', 'cluster', 'wooden', 'sleeper', 'board', 'driver', 'descending', 'stepped', 'board', 'iron', 'nail', 'protruded', 'long', 'identify', 'board', 'submerged', 'puddle', 'water', 'accident', 'caused', 'minor', 'wound', 'sole', 'left', 'foot', 'time', 'accident', 'worker', 'wearing', 'safety', 'bootsmaintenance', 'locomotive', 'workshop', 'level', 'assistant', 'pulling', 'locomotive', 'chair', 'backwards', 'stumble', 'ventilation', 'grille', 'falling', 'platform', 'locomotive', 'floor', 'workshop', 'height', 'generating', 'injury', 'time', 'accident', 'assistant', 'used', 'safety', 'helmet', 'chin', 'straprb', 'machine', 'lifted', 'weight', 'floor', 'level', 'accidently', 'proceeds', 'pull', 'machine', 'key', 'ton', 'maximum', 'cap', 'lay', 'floor', 'advancing', 'horizontally', 'anchor', 'bolt', 'pig', 'tail', 'type', 'diameter', 'key', 'hooked', 'break', 'transversely', 'pulling', 'force', 'key', 'projected', 'onto', 'injured', 'person', 'left', 'shoulder', 'causing', 'injury', 'injured', 'meter', 'key', 'time', 'incident', 'assistant', 'meter', 'away', 'order', 'cleaningpositioning', 'scissor', 'bolter', 'east', 'stope', 'meter', 'top', 'operator', 'assistant', 'verify', 'ventilation', 'sleeve', 'obstruct', 'support', 'left', 'gable', 'decide', 'section', 'sleeve', 'direct', 'towards', 'main', 'corridor', 'injured', 'person', 'decides', 'climb', 'roof', 'equipment', 'cabin', 'surface', 'square', 'meter', 'carry', 'reinstallation', 'sectioned', 'sleeve', 'without', 'noticing', 'step', 'empty', 'fall', 'equipment', 'height', 'meter', 'time', 'accident', 'operator', 'scissor', 'bolter', 'platform', 'equipment', 'positioned', 'blocked', 'perform', 'maintenance', 'assistant', 'wearing', 'safety', 'helmet', 'chin', 'strapcleaning', 'vertical', 'pipe', 'using', 'hydrojet', 'equipment', 'high', 'pressure', 'hose', 'hose', 'returned', 'due', 'obstruction', 'pipe', 'residue', 'reaching', 'operator', 'actuating', 'equipment', 'pedalbypass', 'level', 'worker', 'company', 'incimet', 'raul', 'operator', 'bolter', 'bolting', 'team', 'rolando', 'assistant', 'retired', 'installing', 'support', 'helical', 'bolt', 'pink', 'team', 'mesh', 'overhanging', 'gable', 'teacher', 'tell', 'assistant', 'cut', 'mesh', 'instant', 'assistant', 'finished', 'cutting', 'mesh', 'suddenly', 'rise', 'hitting', 'face', 'causing', 'injury', 'described', 'approximately', 'luna', 'master', 'loader', 'company', 'incimet', 'carrying', 'loading', 'activity', 'front', 'cruiser', 'level', 'moment', 'tying', 'pentacord', 'crown', 'trying', 'reach', 'fanel', 'left', 'side', 'loses', 'balance', 'movement', 'ladder', 'fall', 'floor', 'resulting', 'accidentmoments', 'workermechanic', 'workshop', 'maintenance', 'wire', 'mining', 'lamp', 'hooked', 'drill', 'hole', 'work', 'table', 'workshop', 'fell', 'impacted', 'left', 'foot', 'causing', 'minor', 'bruise', 'time', 'accident', 'collaborator', 'used', 'safety', 'boot', 'steel', 'toecapgeneral', 'store', 'two', 'store', 'attendant', 'removed', 'compartment', 'rubber', 'mesh', 'material', 'classification', 'weight', 'lifted', 'approx', 'position', 'edge', 'another', 'mesh', 'placed', 'floor', 'litter', 'slightly', 'imprisons', 'index', 'finger', 'right', 'hand', 'one', 'assistant', 'causing', 'minor', 'cutting', 'wound', 'time', 'accident', 'injured', 'worker', 'used', 'leather', 'glovesemployee', 'report', 'attempting', 'manually', 'ingot', 'zinco', 'rotary', 'table', 'ingot', 'hit', 'left', 'hand', 'angle', 'structure', 'ingot', 'pressing', 'finger', 'ingot', 'anglemoving', 'roll', 'electrowelded', 'mesh', 'weight', 'place', 'hopper', 'truck', 'two', 'operator', 'pull', 'roll', 'mesh', 'bring', 'hopper', 'truck', 'time', 'imprisonment', 'left', 'hand', 'one', 'operator', 'mesh', 'body', 'hopper', 'generating', 'described', 'injury', 'time', 'accident', 'operator', 'wearing', 'pvctype', 'safety', 'glovesperforming', 'cleaning', 'lhd', 'block', 'level', 'operator', 'surprised', 'rock', 'block', 'displacement', 'side', 'gallery', 'reaching', 'right', 'leg', 'causing', 'superficial', 'injuryworkshop', 'end', 'welding', 'work', 'small', 'bolter', 'equipment', 'welder', 'proceeds', 'clean', 'inside', 'metal', 'stool', 'impregnated', 'thinner', 'flammable', 'liquid', 'help', 'hammer', 'screwdriver', 'proceeds', 'remove', 'oxide', 'hitting', 'screwdriver', 'hammer', 'produce', 'flash', 'internal', 'base', 'stool', 'produce', 'slight', 'burn', 'right', 'hand', 'welder', 'time', 'accident', 'welder', 'glove', 'left', 'hand', 'approximately', 'cesar', 'operator', 'mine', 'service', 'instant', 'picking', 'cat', 'position', 'one', 'truck', 'crane', 'plate', 'acl', 'raising', 'right', 'hand', 'lower', 'part', 'cat', 'indexed', 'index', 'finger', 'left', 'hand', 'body', 'cylinder', 'valve', 'cat', 'valve', 'turntable', 'upper', 'partemployee', 'report', 'placed', 'air', 'lance', 'tank', 'opened', 'manual', 'air', 'valve', 'projection', 'acid', 'solution', 'heated', 'toward', 'reaching', 'front', 'left', 'thighinjured', 'woman', 'performed', 'cleaning', 'cleaning', 'sink', 'collection', 'room', 'pierced', 'finger', 'fragment', 'glassdischarging', 'sodium', 'hydroxide', 'disconnecting', 'hose', 'employee', 'placed', 'next', 'demineralization', 'suction', 'pump', 'turned', 'receiving', 'projection', 'pump', 'sensor', 'causing', 'degree', 'burnmr', 'jesus', 'operator', 'concrete', 'throwing', 'team', 'alpha', 'shooting', 'shotcrete', 'work', 'applying', 'realizes', 'additive', 'come', 'mix', 'directing', 'lift', 'cover', 'passage', 'valve', 'inch', 'thickness', 'approximately', 'verifying', 'valve', 'open', 'release', 'lid', 'hit', 'third', 'finger', 'left', 'hand', 'base', 'causing', 'injuryemployee', 'performed', 'return', 'load', 'entrance', 'debarking', 'machine', 'trying', 'align', 'cathode', 'pressed', 'right', 'handinjured', 'worker', 'begin', 'work', 'presenting', 'support', 'mesh', 'cloth', 'floor', 'making', 'initial', 'cut', 'mesh', 'section', 'poncho', 'originating', 'remaining', 'mesh', 'wick', 'tip', 'prong', 'protruding', 'trying', 'make', 'second', 'mesh', 'cut', 'positioned', 'edge', 'remaining', 'mesh', 'wick', 'prevent', 'curling', 'point', 'try', 'take', 'shear', 'remove', 'right', 'foot', 'mesh', 'causing', 'mesh', 'roll', 'embed', 'wick', 'tip', 'pole', 'left', 'boot', 'causing', 'injury', 'time', 'accident', 'worker', 'wearing', 'safety', 'bootsddh', 'chamber', 'company', 'explomin', 'located', 'level', 'socorro', 'ramp', 'worker', 'assistant', 'drillerwas', 'dismantling', 'fifth', 'drill', 'rod', 'meter', 'steel', 'weight', 'using', 'stilson', 'key', 'moment', 'operator', 'operates', 'rotation', 'unit', 'drill', 'rod', 'rotates', 'pressing', 'left', 'hand', 'worker', 'base', 'rod', 'holder', 'causing', 'injury', 'left', 'hand', 'time', 'accident', 'drilling', 'assistant', 'used', 'rubber', 'glovescarrying', 'maneuver', 'increase', 'pipe', 'line', 'driller', 'wilder', 'indicates', 'assistant', 'gilton', 'introduce', 'inner', 'pipe', 'drill', 'assistant', 'introduces', 'inner', 'pipe', 'place', 'hand', 'box', 'pipe', 'driller', 'without', 'noticing', 'move', 'pipe', 'assistant', 'hand', 'open', 'chuck', 'rotation', 'unit', 'dropping', 'pipe', 'imprisoning', 'injured', 'person', 'right', 'hand', 'causing', 'injuryemployee', 'report', 'climbing', 'access', 'ladder', 'operating', 'room', 'ustulation', 'surprised', 'projection', 'sulfuric', 'acidperforming', 'geological', 'mapping', 'activity', 'necessary', 'hammer', 'rock', 'analysis', 'moment', 'clerk', 'held', 'pointed', 'fragment', 'slipped', 'third', 'quirodactyl', 'right', 'hand', 'causing', 'superficial', 'cut', 'approximately', 'kevin', 'helper', 'jumbo', 'removed', 'drill', 'rod', 'drilling', 'hole', 'instant', 'break', 'chain', 'subjection', 'table', 'drilling', 'machine', 'sliding', 'achieving', 'rubbing', 'index', 'finger', 'left', 'hand', 'causing', 'injury', 'approximately', 'francisco', 'operator', 'scoop', 'observes', 'polyethylene', 'pipe', 'thrown', 'road', 'proceeding', 'lower', 'equipment', 'found', 'lifting', 'pipe', 'hook', 'right', 'gable', 'piece', 'rock', 'suspended', 'lectrowelded', 'mesh', 'impacting', 'operator', 'right', 'eyebrow', 'causing', 'injuryconducting', 'inspection', 'evaluate', 'activity', 'carried', 'pump', 'house', 'ustulation', 'steam', 'station', 'hit', 'sulfuric', 'acid', 'spill', 'line', 'located', 'pump', 'house', 'thermal', 'recovery', 'boilerconducting', 'inspection', 'evaluate', 'activity', 'carried', 'pump', 'house', 'ustulation', 'steam', 'station', 'struck', 'sulfuric', 'acid', 'spill', 'line', 'located', 'house', 'thermal', 'recovery', 'boiler', 'pumpsemployee', 'sanding', 'piece', 'electrolysis', 'end', 'operation', 'protective', 'cap', 'disk', 'spun', 'back', 'left', 'handdie', 'cutting', 'feeder', 'pead', 'geomembrane', 'blanket', 'weld', 'seam', 'store', 'extruder', 'stylet', 'blade', 'came', 'direction', 'left', 'forearm', 'resulting', 'blunt', 'short', 'injurywelding', 'workshop', 'level', 'tunnel', 'quinoa', 'moment', 'assistant', 'raised', 'wooden', 'strut', 'long', 'diameter', 'weight', 'place', 'work', 'table', 'height', 'tread', 'another', 'wooden', 'strut', 'placed', 'floor', 'losing', 'balance', 'falling', 'level', 'lying', 'laterally', 'concrete', 'wall', 'causing', 'bruise', 'left', 'shouldersunday', 'collaborator', 'medical', 'center', 'saying', 'accident', 'day', 'ago', 'performed', 'internal', 'maintenance', 'work', 'heat', 'exchanger', 'defined', 'confined', 'space', 'risk', 'burning', 'acid', 'leaving', 'confined', 'space', 'employee', 'remove', 'protective', 'glove', 'without', 'passed', 'emergency', 'shower', 'moment', 'skin', 'contact', 'occurs', 'sulfate', 'generating', 'lesionmoments', 'truck', 'transport', 'personnel', 'company', 'mceisa', 'plate', 'ajg', 'moved', 'surface', 'missing', 'reach', 'mouth', 'gearbox', 'respond', 'driver', 'stop', 'truck', 'inspect', 'along', 'maintenance', 'personnel', 'time', 'traveling', 'truck', 'raise', 'cabin', 'manually', 'put', 'change', 'first', 'continue', 'trip', 'culminated', 'task', 'driver', 'support', 'maintenance', 'personnel', 'lower', 'cabin', 'due', 'weight', 'fall', 'hitting', 'driver', 'cabin', 'hopper', 'truck', 'time', 'accident', 'employee', 'wearing', 'safety', 'helmet', 'chin', 'strapcompleting', 'welding', 'work', 'backhoe', 'bucket', 'made', 'hour', 'used', 'glass', 'moon', 'welder', 'feel', 'slight', 'discomfort', 'eye', 'transferred', 'medical', 'service', 'evaluation', 'accident', 'welder', 'used', 'facial', 'mask', 'weldingemployee', 'milpo', 'lima', 'visited', 'facility', 'level', 'waiting', 'personnel', 'cage', 'level', 'drop', 'water', 'fall', 'ceiling', 'height', 'meter', 'approximately', 'product', 'slight', 'filtration', 'crown', 'sustained', 'shotcrete', 'drop', 'enters', 'right', 'eye', 'causing', 'discomfort', 'right', 'eye', 'according', 'employee', 'time', 'accident', 'lens', 'removed', 'clean', 'happened', 'visit', 'interior', 'mineel', 'porvenir', 'substation', 'level', 'assembling', 'metal', 'structure', 'approximately', 'support', 'lifting', 'system', 'three', 'operator', 'try', 'accommodate', 'structure', 'anchor', 'base', 'moment', 'metallic', 'structure', 'slide', 'direction', 'injured', 'worker', 'right', 'hand', 'producing', 'slight', 'right', 'hand', 'accretion', 'head', 'bolt', 'base', 'structure', 'causing', 'injury', 'time', 'accident', 'operator', 'made', 'use', 'safety', 'glovesemployee', 'performing', 'carbon', 'steel', 'pipe', 'marking', 'activity', 'helmet', 'struck', 'tube', 'causing', 'scalp', 'wound', 'due', 'impact', 'helmet', 'sheepskinmaintenance', 'lxpb', 'pump', 'projection', 'silicate', 'pulp', 'reaching', 'right', 'leg', 'employeecircumstances', 'collaborator', 'juveni', 'performed', 'washing', 'tabolas', 'pot', 'washing', 'area', 'suffers', 'feeling', 'dizziness', 'faintness', 'causing', 'fall', 'level', 'producing', 'slight', 'concussion', 'headtransit', 'fuel', 'tanker', 'level', 'level', 'north', 'ramp', 'passing', 'level', 'operator', 'feel', 'right', 'rear', 'tire', 'skid', 'operator', 'performs', 'defensive', 'maneuver', 'truck', 'hit', 'left', 'gable', 'causing', 'injury', 'described', 'time', 'accident', 'pilot', 'copilot', 'wearing', 'safety', 'belt', 'safety', 'glass', 'helmetfield', 'trip', 'return', 'work', 'lunch', 'employee', 'wellfield', 'company', 'slipped', 'loose', 'stone', 'place', 'moment', 'intention', 'balancing', 'tried', 'hold', 'onto', 'tree', 'falling', 'right', 'arm', 'causing', 'fracture', 'distal', 'end', 'radius', 'activity', 'paralyzed', 'employee', 'referred', 'hospital', 'paracatu', 'underwent', 'medical', 'care', 'approximately', 'workshop', 'mechanical', 'maintenance', 'surface', 'orlando', 'boltec', 'assistant', 'macedonio', 'made', 'cut', 'link', 'shorten', 'distance', 'chain', 'hold', 'injection', 'hose', 'resin', 'instant', 'saw', 'blade', 'leaf', 'cutting', 'position', 'affecting', 'second', 'finger', 'left', 'hand', 'causing', 'injurytests', 'soft', 'starter', 'engine', 'belt', 'collaborator', 'igor', 'move', 'around', 'site', 'approximately', 'fall', 'trench', 'electric', 'cable', 'deep', 'found', 'partially', 'discoveredchecking', 'voltage', 'power', 'outlet', 'plug', 'socket', 'make', 'sure', 'connection', 'correct', 'small', 'electrical', 'arc', 'power', 'cord', 'causing', 'slight', 'burn', 'right', 'hand', 'wrist', 'protection', 'system', 'acted', 'immediatelyground', 'team', 'coordinated', 'prospector', 'assistant', 'silva', 'wila', 'prong', 'opening', 'access', 'collect', 'soil', 'sample', 'auxiliar', 'came', 'across', 'tried', 'divert', 'meter', 'right', 'place', 'moment', 'diversion', 'came', 'across', 'marimbondo', 'house', 'front', 'giving', 'time', 'action', 'since', 'thug', 'already', 'agitated', 'silva', 'time', 'sting', 'head', 'another', 'behind', 'neck', 'sting', 'face', 'since', 'allergy', 'test', 'verified', 'allergic', 'reaction', 'washed', 'affected', 'part', 'returned', 'normal', 'activitiesgeological', 'reconnaissance', 'activity', 'farm', 'lazaro', 'team', 'composed', 'felipe', 'divino', 'morais', 'normal', 'activity', 'encountered', 'ciliary', 'forest', 'needed', 'enter', 'forest', 'verify', 'rock', 'outcrop', 'front', 'divine', 'realized', 'opening', 'access', 'machete', 'moment', 'took', 'bite', 'neck', 'attack', 'allergic', 'reaction', 'continued', 'work', 'normally', 'work', 'completed', 'leaving', 'forest', 'access', 'divine', 'assistant', 'attacked', 'snake', 'suffered', 'sting', 'forehead', 'moment', 'moved', 'away', 'area', 'verified', 'type', 'allergic', 'reaction', 'returned', 'normal', 'activitiesclerk', 'peeling', 'pulling', 'sheet', 'came', 'another', 'one', 'struck', 'chirodactile', 'left', 'hand', 'tearing', 'pvc', 'sleeve', 'caused', 'cutprocess', 'washing', 'material', 'becker', 'tip', 'material', 'broken', 'caused', 'cut', 'finger', 'right', 'handcircumstances', 'collaborator', 'performed', 'cleaning', 'ditch', 'deep', 'removing', 'pipe', 'hdpe', 'material', 'estimated', 'weight', 'together', 'two', 'collaborator', 'pushing', 'tube', 'drain', 'dune', 'collaborator', 'hit', 'lower', 'right', 'side', 'lip', 'producing', 'slight', 'blow', 'lip', 'time', 'event', 'collaborator', 'safety', 'helmet', 'glass', 'glove', 'approximately', 'tecnomin', 'winery', 'chagua', 'bodeguero', 'alone', 'cutting', 'wire', 'grinder', 'previously', 'removed', 'protection', 'guard', 'disk', 'inch', 'diameter', 'adapted', 'disk', 'crosscutter', 'approximately', 'inch', 'originating', 'traumatic', 'amputation', 'two', 'finger', 'left', 'handfield', 'trip', 'lajes', 'target', 'junior', 'costa', 'official', 'stepped', 'wooden', 'stump', 'ground', 'approximately', 'pierced', 'boot', 'wounding', 'sole', 'right', 'foot', 'time', 'accident', 'employee', 'using', 'ppe', 'required', 'activity', 'hand', 'free', 'employee', 'taken', 'hospital', 'went', 'medical', 'care', 'released', 'return', 'activity', 'next', 'day', 'worklevel', 'ore', 'hauling', 'activity', 'locomotive', 'bine', 'time', 'convoy', 'traveling', 'hopper', 'assistant', 'motorist', 'riding', 'saddle', 'holding', 'pole', 'struck', 'weakly', 'split', 'set', 'suspended', 'hdp', 'pipeline', 'gable', 'work', 'meter', 'floor', 'time', 'accident', 'assistant', 'wearing', 'safety', 'equipment', 'wearing', 'seatbelt', 'time', 'accident', 'split', 'set', 'accompanied', 'movement', 'path', 'convoyemployee', 'work', 'electrician', 'management', 'electrometallurgy', 'suffers', 'contusion', 'right', 'leg', 'suffering', 'slip', 'height', 'step', 'staircase', 'code', 'ele', 'abb', 'furnace', 'cat', 'ladder', 'immediately', 'referred', 'collaborator', 'medical', 'service', 'treatedtimes', 'worker', 'technician', 'orlando', 'boltec', 'cia', 'wanted', 'pas', 'hand', 'stacker', 'sardinel', 'technician', 'pulled', 'hydraulic', 'arm', 'pushing', 'nail', 'equipment', 'reaching', 'trench', 'rim', 'tied', 'team', 'turn', 'forward', 'falling', 'techniciancircumstances', 'employee', 'made', 'connection', 'electric', 'cable', 'jumbo', 'operator', 'feel', 'discomfort', 'face', 'cleaning', 'hand', 'using', 'rubber', 'glove', 'generating', 'superficial', 'laceration', 'small', 'wound', 'left', 'cheekbonephase', 'iii', 'concentrator', 'plant', 'maintenance', 'personnel', 'carried', 'removal', 'transmission', 'belt', 'flotation', 'cell', 'cleaning', 'moment', 'mechanic', 'removed', 'belt', 'lean', 'left', 'leg', 'slide', 'towards', 'grating', 'floor', 'leaving', 'foot', 'two', 'pipe', 'generating', 'lesion', 'described', 'work', 'carried', 'floor', 'level', 'time', 'accident', 'staff', 'put', 'safety', 'equipmentapproximately', 'operator', 'eustaquio', 'fall', 'metal', 'platform', 'give', 'access', 'tank', 'strong', 'acid', 'leaching', 'stage', 'suffers', 'luxofractures', 'wrist', 'left', 'leaning', 'floor', 'hand', 'operator', 'directed', 'first', 'tank', 'strong', 'acid', 'leaching', 'stage', 'verify', 'entry', 'spent', 'taqueproject', 'vazante', 'carried', 'sediment', 'collection', 'current', 'south', 'mata', 'target', 'drainage', 'serra', 'garrote', 'team', 'composed', 'member', 'wca', 'company', 'leandro', 'jehovanio', 'moving', 'one', 'collection', 'point', 'another', 'inside', 'shallow', 'drainage', 'saw', 'bee', 'carton', 'reaction', 'move', 'away', 'box', 'quickly', 'possible', 'avoid', 'sting', 'ran', 'meter', 'looking', 'safe', 'area', 'exit', 'radius', 'attack', 'bee', 'breno', 'attacked', 'consequently', 'suffered', 'sting', 'belly', 'jehovah', 'hand', 'verified', 'type', 'allergic', 'reaction', 'returned', 'normal', 'activitiesemployee', 'report', 'working', 'brushcutters', 'near', 'stone', 'blade', 'equipment', 'collided', 'piece', 'metal', 'projected', 'toward', 'leg', 'causing', 'injury', 'left', 'legmooring', 'faneles', 'detonating', 'cord', 'completed', 'injured', 'person', 'proceeds', 'tie', 'detonating', 'cord', 'safety', 'guide', 'slow', 'wick', 'distance', 'meter', 'top', 'work', 'moment', 'finish', 'mooring', 'rock', 'bank', 'front', 'height', 'meter', 'fall', 'floor', 'close', 'injured', 'disintegrates', 'several', 'fragment', 'one', 'cmxcmxcm', 'slide', 'fragment', 'rock', 'impact', 'left', 'leg', 'victim', 'time', 'accident', 'operator', 'used', 'safety', 'boot', 'accompanied', 'supervisoractivity', 'construction', 'wall', 'stopper', 'mortar', 'block', 'improve', 'ventilation', 'intermediate', 'zone', 'moment', 'bricklayer', 'assistant', 'preparing', 'complete', 'construction', 'high', 'wall', 'part', 'wall', 'block', 'per', 'block', 'fall', 'towards', 'scaffold', 'mason', 'assistant', 'jump', 'towards', 'accumulation', 'sand', 'located', 'one', 'side', 'avoid', 'hit', 'block', 'fall', 'injury', 'described', 'occurs', 'time', 'accident', 'mason', 'assistant', 'jump', 'height', 'floor', 'work', 'used', 'personal', 'safety', 'equipment', 'reduced', 'impact', 'fallgeologo', 'auxiliary', 'elismar', 'traveled', 'evaluate', 'geological', 'point', 'following', 'gps', 'near', 'drainage', 'following', 'state', 'highway', 'give', 'access', 'aripuana', 'area', 'stopped', 'got', 'vehicle', 'see', 'point', 'identified', 'gps', 'renato', 'distancing', 'seven', 'meter', 'vehicle', 'following', 'road', 'surprised', 'four', 'bite', 'thorn', 'face', 'neck', 'quickly', 'hurried', 'back', 'vehicle', 'moving', 'away', 'place', 'clerk', 'wearing', 'girdle', 'goggles', 'still', 'wearing', 'glove', 'would', 'enter', 'forest', 'area', 'allergic', 'reactiongeologist', 'auxiliary', 'ademir', 'traveled', 'field', 'evaluate', 'geological', 'point', 'following', 'gps', 'near', 'drainage', 'following', 'state', 'highway', 'give', 'access', 'aripuana', 'area', 'stopped', 'got', 'vehicle', 'see', 'point', 'identified', 'gps', 'mario', 'distancing', 'five', 'meter', 'vehicle', 'following', 'road', 'surprised', 'two', 'bite', 'thorn', 'face', 'quickly', 'hurried', 'back', 'vehicle', 'moving', 'away', 'place', 'clerk', 'wearing', 'girdle', 'goggles', 'still', 'wearing', 'glove', 'would', 'enter', 'forest', 'area', 'allergic', 'reactionsafety', 'technical', 'moved', 'field', 'inspection', 'activity', 'way', 'field', 'paused', 'together', 'two', 'team', 'order', 'know', 'drainage', 'point', 'checked', 'safety', 'getting', 'vehicle', 'struck', 'sting', 'weed', 'neck', 'quickly', 'returned', 'vehicle', 'made', 'radio', 'communication', 'two', 'team', 'distanced', 'place', 'clerk', 'wearing', 'legging', 'glass', 'allergic', 'reactionauxiliary', 'geologist', 'traveled', 'field', 'evaluate', 'geological', 'point', 'following', 'gps', 'near', 'drainage', 'following', 'state', 'highway', 'give', 'access', 'aripuana', 'area', 'stopped', 'got', 'vehicle', 'see', 'point', 'identified', 'gps', 'ademir', 'distancing', 'five', 'meter', 'vehicle', 'accompanied', 'geologist', 'mario', 'surprised', 'two', 'bite', 'blow', 'neck', 'quickly', 'hurried', 'back', 'vehicle', 'moving', 'away', 'place', 'clerk', 'wearing', 'girdle', 'goggles', 'still', 'wearing', 'glove', 'would', 'enter', 'forest', 'area', 'allergic', 'reactiontraveling', 'field', 'order', 'make', 'geological', 'mapping', 'geologist', 'manoel', 'accompanied', 'prospector', 'marcos', 'stooped', 'deviate', 'vegetation', 'time', 'received', 'three', 'whistling', 'sting', 'two', 'face', 'one', 'neck', 'allergic', 'reaction', 'activity', 'followed', 'normally', 'eventmoving', 'field', 'make', 'geological', 'mapping', 'prospector', 'marcos', 'accompanied', 'geologist', 'manoel', 'stooped', 'deviate', 'vegetation', 'moment', 'received', 'whistling', 'sting', 'ring', 'finger', 'right', 'hand', 'allergic', 'reaction', 'activity', 'followed', 'normally', 'eventapproximately', 'operator', 'paulo', 'operator', 'filter', 'informed', 'autoclave', 'operator', 'via', 'radio', 'leak', 'side', 'scruber', 'autoclave', 'iii', 'feed', 'stopped', 'control', 'official', 'georli', 'renato', 'initiated', 'procedure', 'closing', 'autoclave', 'transfer', 'valve', 'flash', 'tqs', 'soon', 'break', 'chicken', 'projecting', 'pulp', 'hot', 'reaching', 'three', 'employee', 'inside', 'room', 'near', 'equipmentoperator', 'scissor', 'leaf', 'equipment', 'parked', 'level', 'acc', 'due', 'electrical', 'problem', 'maintenance', 'personnel', 'arrives', 'electrician', 'climb', 'control', 'platform', 'equipment', 'performs', 'verification', 'hydraulic', 'system', 'confirming', 'problem', 'coordination', 'mechanic', 'decide', 'perform', 'test', 'diesel', 'system', 'moment', 'accidentally', 'activates', 'body', 'arm', 'movement', 'lever', 'causing', 'drill', 'arm', 'move', 'downwards', 'generating', 'left', 'hand', 'atricion', 'support', 'pivot', 'tube', 'generating', 'lesion', 'described', 'time', 'accident', 'electrician', 'alone', 'control', 'platform', 'mechanic', 'ground', 'level', 'observing', 'pressure', 'diesel', 'system', 'pressure', 'gaugemechanical', 'technician', 'proceeded', 'perform', 'maintenance', 'motor', 'support', 'tipper', 'decided', 'bring', 'wooden', 'block', 'moved', 'temporary', 'storage', 'material', 'located', 'tipper', 'circumstance', 'sought', 'cue', 'camera', 'tire', 'burst', 'suddenly', 'right', 'involved', 'thunderous', 'sound', 'affected', 'right', 'ear', 'worker', 'tire', 'exploded', 'psi', 'pressure', 'approximately', 'time', 'event', 'stacked', 'pneumatic', 'second', 'one', 'exploded', 'presented', 'cut', 'place', 'energy', 'released', 'tire', 'upper', 'part', 'projected', 'tire', 'left', 'previous', 'guard', 'night', 'shift', 'storage', 'area', 'roof', 'place', 'event', 'affected', 'mechanic', 'located', 'distance', 'worker', 'area', 'truck', 'parked', 'none', 'suffered', 'damage', 'glasslevel', 'access', 'siemag', 'camera', 'roof', 'time', 'piquero', 'civil', 'operator', 'looked', 'stilson', 'key', 'inside', 'metal', 'tool', 'box', 'open', 'metal', 'lid', 'weight', 'hand', 'push', 'lid', 'backwards', 'positioning', 'right', 'hand', 'near', 'base', 'lid', 'causing', 'incentration', 'fifth', 'finger', 'lid', 'structure', 'box', 'height', 'hinge', 'time', 'accident', 'employee', 'wore', 'pad', 'glove', 'reduced', 'consequence', 'injuryhandling', 'lever', 'move', 'sludge', 'employee', 'moved', 'making', 'pendulum', 'movement', 'striking', 'chinchange', 'rim', 'position', 'jumbo', 'moment', 'mechanical', 'technician', 'support', 'electrician', 'disengaged', 'bolt', 'loosening', 'fourth', 'nut', 'help', 'lever', 'metal', 'tube', 'diameter', 'length', 'weight', 'bouncing', 'effect', 'returning', 'initial', 'position', 'hitting', 'palm', 'left', 'hand', 'electrician', 'technician', 'causing', 'injury', 'employee', 'time', 'accident', 'used', 'ppes', 'including', 'leather', 'glovescircumstances', 'operator', 'scooptram', 'proceeded', 'sit', 'equipment', 'closing', 'door', 'take', 'right', 'hand', 'handrail', 'place', 'close', 'door', 'hinge', 'closing', 'trap', 'part', 'worker', 'middle', 'finger', 'worker', 'time', 'accident', 'made', 'use', 'leather', 'safety', 'glovesplant', 'work', 'geho', 'pump', 'reducer', 'accompanying', 'rotation', 'shaft', 'reducer', 'mixed', 'key', 'wrench', 'crown', 'hit', 'housing', 'geho', 'pump', 'attributing', 'union', 'area', 'fifth', 'fourth', 'finger', 'welder', 'right', 'hand', 'causing', 'injury', 'time', 'accident', 'equipment', 'blocked', 'employee', 'used', 'leather', 'glovesaccess', 'level', 'installation', 'activity', 'hydraulic', 'filling', 'pipe', 'diameter', 'installing', 'section', 'height', 'reference', 'floor', 'master', 'hydraulic', 'filling', 'accident', 'partner', 'suffers', 'attrition', 'right', 'hand', 'upper', 'edge', 'scoop', 'lamp', 'roof', 'work', 'generating', 'injury', 'time', 'accident', 'employee', 'used', 'rubber', 'glove', 'frank', 'support', 'another', 'mechanic', 'preparing', 'place', 'floor', 'metal', 'part', 'called', 'rear', 'bridge', 'forklift', 'moment', 'part', 'moving', 'part', 'move', 'generating', 'blow', 'middle', 'finger', 'left', 'handlevel', 'gallery', 'performing', 'manual', 'unlocking', 'load', 'worker', 'prepares', 'cut', 'sacrificial', 'mesh', 'exposed', 'previous', 'turn', 'shot', 'placing', 'inch', 'shear', 'cutting', 'fifth', 'suddenly', 'strained', 'wire', 'mesh', 'return', 'face', 'casionandole', 'injury', 'described', 'activity', 'worker', 'used', 'safety', 'glassescircumstances', 'adjutant', 'scissor', 'bolter', 'came', 'team', 'ladder', 'last', 'step', 'slide', 'approximate', 'height', 'fall', 'sitting', 'floor', 'time', 'accident', 'person', 'involved', 'use', 'helmet', 'rock', 'material', 'crash', 'sitemoments', 'maperu', 'truck', 'plate', 'returned', 'city', 'pasco', 'unit', 'transporting', 'consultant', 'meter', 'main', 'gate', 'lane', 'invaded', 'civilian', 'vehicle', 'making', 'driver', 'turn', 'sharply', 'side', 'right', 'staff', 'company', 'impromec', 'hot', 'melt', 'work', 'pipe', 'impacting', 'two', 'collaborator', 'causing', 'injury', 'described', 'time', 'accident', 'truck', 'traveling', 'according', 'inthinc', 'width', 'road', 'meter', 'activity', 'safety', 'cone', 'warning', 'side', 'road', 'employee', 'used', 'respective', 'epps', 'approx', 'hour', 'operator', 'fernando', 'opening', 'wagon', 'find', 'hardened', 'stake', 'bar', 'approx', 'remove', 'moment', 'press', 'bar', 'hit', 'handexecution', 'drilling', 'target', 'bolt', 'brjcldd', 'made', 'company', 'servitecforaco', 'probe', 'july', 'official', 'josimar', 'silva', 'moment', 'maneuver', 'fish', 'material', 'removing', 'feeder', 'water', 'movement', 'winch', 'realized', 'safety', 'chain', 'loose', 'could', 'curl', 'rod', 'performing', 'chain', 'removal', 'movement', 'placed', 'left', 'hand', 'hose', 'cap', 'hydraulic', 'plate', 'unlocking', 'inner', 'tube', 'abrupt', 'movement', 'chain', 'pushing', 'hand', 'towards', 'hydraulic', 'plate', 'causing', 'injury', 'ring', 'finger', 'hand', 'lesion', 'caused', 'cut', 'quirodactyl', 'need', 'suture', 'point', 'close', 'cutoperator', 'paste', 'filling', 'plant', 'remove', 'floor', 'grating', 'clean', 'lower', 'floor', 'removed', 'close', 'water', 'valve', 'block', 'vacuum', 'two', 'technician', 'entering', 'filter', 'belt', 'notice', 'overflow', 'ask', 'operator', 'reduce', 'load', 'mechanic', 'kept', 'walking', 'without', 'noticing', 'floor', 'one', 'fall', 'void', 'impacting', 'foot', 'left', 'angle', 'floor', 'grating', 'producing', 'injuryaccident', 'occurred', 'time', 'employee', 'partner', 'company', 'carried', 'unloading', 'operation', 'bladder', 'bag', 'cutting', 'bag', 'charging', 'boom', 'silo', 'truck', 'delivery', 'mouth', 'inner', 'plastic', 'bag', 'surrounding', 'content', 'abruptly', 'dropped', 'large', 'amount', 'material', 'fell', 'onto', 'cone', 'funnel', 'cone', 'fell', 'injured', 'man', 'stood', 'leg', 'pressed', 'body', 'guard', 'scaffold', 'external', 'medical', 'attention', 'verified', 'fracturelevel', 'entrance', 'locomotive', 'workshop', 'welder', 'proceeds', 'inspect', 'mining', 'car', 'identifies', 'car', 'bearing', 'problem', 'informs', 'partner', 'finding', 'decides', 'enter', 'car', 'workshop', 'operates', 'swing', 'arm', 'type', 'mona', 'weight', 'move', 'direction', 'railway', 'towards', 'central', 'moment', 'push', 'rocker', 'weight', 'body', 'right', 'hand', 'come', 'contact', 'rock', 'producing', 'injury', 'described', 'time', 'accident', 'worker', 'wearing', 'safety', 'glove', 'padhandling', 'sample', 'laboratory', 'sleeve', 'employee', 'coat', 'contact', 'nitric', 'acid', 'absorbing', 'small', 'amount', 'came', 'reach', 'left', 'forearm', 'causing', 'degree', 'burnlevel', 'gallery', 'holding', 'activity', 'bolter', 'equipment', 'operator', 'performs', 'drilling', 'first', 'hole', 'support', 'right', 'gable', 'footdeep', 'drill', 'end', 'drill', 'rod', 'break', 'leaving', 'thread', 'inside', 'drilling', 'machine', 'shank', 'operator', 'assistant', 'decide', 'make', 'two', 'empty', 'percussion', 'attempt', 'free', 'thread', 'shank', 'without', 'success', 'third', 'attempt', 'assistant', 'enters', 'corrugated', 'iron', 'central', 'hole', 'rest', 'bar', 'embedded', 'shank', 'generate', 'pressure', 'moment', 'operator', 'activates', 'percussion', 'generates', 'movement', 'shank', 'hit', 'palm', 'victim', 'left', 'hand', 'generating', 'described', 'injury', 'worker', 'wearing', 'safety', 'glove', 'time', 'accident', 'end', 'corrugated', 'iron', 'contact', 'left', 'hand', 'shaped', 'like', 'cane', 'worker', 'time', 'accident', 'positioned', 'roof', 'supported', 'mesh', 'split', 'set', 'hour', 'collaborator', 'warrin', 'welder', 'trying', 'inspect', 'cracking', 'point', 'inlet', 'laminator', 'slip', 'fall', 'level', 'hitting', 'face', 'hand', 'immediately', 'transferred', 'medical', 'service', 'evaluationemployee', 'report', 'draining', 'ammonia', 'used', 'refrigerant', 'container', 'water', 'splash', 'solution', 'drained', 'onto', 'faceeusebio', 'bridge', 'sudden', 'braking', 'several', 'car', 'brake', 'quickly', 'collaborator', 'car', 'failed', 'stop', 'time', 'collided', 'rear', 'car', 'ahead', 'hourtorch', 'cutting', 'activity', 'new', 'evaporator', 'treatment', 'fixing', 'rupture', 'hose', 'near', 'torch', 'pen', 'causing', 'injurytimes', 'mill', 'operator', 'proceeded', 'remove', 'vitaulic', 'flange', 'connecting', 'suction', 'pipe', 'pump', 'housing', 'intention', 'desanding', 'system', 'removing', 'flange', 'mineral', 'pulp', 'come', 'pressure', 'impact', 'face', 'wrist', 'left', 'hand', 'generating', 'lesion', 'described', 'time', 'accident', 'secondary', 'mill', 'pump', 'blocked', 'maintenance', 'work', 'mill', 'operator', 'used', 'safety', 'glasseslevel', 'access', 'area', 'operator', 'scissor', 'team', 'preparing', 'present', 'second', 'mesh', 'continue', 'support', 'work', 'operator', 'pull', 'support', 'mesh', 'share', 'length', 'equally', 'side', 'equipment', 'moment', 'roof', 'work', 'rock', 'weighs', 'approximately', 'fall', 'support', 'mesh', 'slide', 'towards', 'right', 'side', 'spoiler', 'result', 'mesh', 'push', 'operator', 'kneeling', 'floor', 'platform', 'generates', 'lesion', 'described', 'rock', 'falling', 'directly', 'impact', 'operator', 'squatting', 'position', 'operator', 'move', 'away', 'area', 'walking', 'mean', 'supported', 'assistantemployee', 'report', 'upon', 'initiating', 'rlc', 'front', 'loading', 'activity', 'elevation', 'aerial', 'work', 'platform', 'rock', 'fragment', 'roof', 'gallery', 'dropped', 'reaching', 'face', 'causing', 'lesionopened', 'access', 'ladder', 'people', 'carrying', 'truck', 'employee', 'right', 'hand', 'pressed', 'support', 'bracket', 'suffering', 'superficial', 'injuryemployee', 'partner', 'company', 'report', 'cutting', 'watermelon', 'injured', 'chirodactilo', 'left', 'hand', 'knifemincing', 'team', 'carrying', 'activity', 'city', 'juina', 'coordinated', 'mining', 'technician', 'felipe', 'time', 'mining', 'technician', 'last', 'line', 'away', 'team', 'bitten', 'blackjack', 'left', 'side', 'face', 'allergic', 'manifestation', 'team', 'continued', 'work', 'afternoon', 'lunch', 'employee', 'sought', 'medical', 'care', 'medicated', 'released', 'continue', 'activity', 'next', 'daytime', 'worker', 'cleaning', 'long', 'hole', 'production', 'mesh', 'negative', 'removing', 'polyethylene', 'pipe', 'suffers', 'clogging', 'inside', 'drill', 'product', 'compressed', 'air', 'pressure', 'released', 'ejecting', 'detritus', 'fragment', 'rock', 'inside', 'hole', 'impacting', 'worker', 'forehead', 'causing', 'cutremoving', 'cap', 'wear', 'plate', 'warman', 'lxbb', 'pump', 'left', 'hand', 'employee', 'glove', 'slipped', 'came', 'contact', 'cutting', 'part', 'boardwithdrawal', 'fixed', 'jaw', 'wedge', 'crusher', 'hoisting', 'device', 'hook', 'broken', 'causing', 'steel', 'cable', 'overhead', 'crane', 'strike', 'left', 'hand', 'employeeleaving', 'company', 'employee', 'stumbled', 'onto', 'exit', 'ladder', 'building', 'fell', 'step', 'causing', 'twisting', 'ankle', 'grating', 'cinnamonore', 'transport', 'work', 'bine', 'filled', 'tenth', 'mining', 'car', 'ore', 'assistant', 'positioned', 'platform', 'hopper', 'place', 'wooden', 'board', 'piston', 'chain', 'avoid', 'fall', 'fine', 'track', 'time', 'fragment', 'rock', 'cmxcm', 'roll', 'load', 'hit', 'distal', 'phalanx', 'fourth', 'finger', 'left', 'hand', 'assistant', 'time', 'accident', 'wearing', 'safety', 'glove', 'pad', 'type', 'hopper', 'time', 'accident', 'zero', 'energycircumstances', 'drilling', 'assistant', 'proceeded', 'assemble', 'inner', 'tube', 'barel', 'injured', 'person', 'retracts', 'inner', 'tube', 'head', 'throw', 'manually', 'towards', 'top', 'catheter', 'inclination', 'continue', 'perforation', 'moment', 'glove', 'left', 'hand', 'hooked', 'speart', 'point', 'pushing', 'left', 'hand', 'edge', 'box', 'barel', 'originating', 'injury', 'time', 'accident', 'injured', 'employee', 'used', 'rubber', 'glove', 'work', 'area', 'well', 'litemployee', 'nilton', 'made', 'opening', 'visit', 'unclog', 'moment', 'occurred', 'projection', 'hot', 'material', 'occurring', 'accidentmaintaining', 'ramp', 'placing', 'first', 'cloth', 'overlap', 'previous', 'mesh', 'operator', 'check', 'work', 'front', 'return', 'back', 'team', 'coordinate', 'assistant', 'time', 'fragment', 'rock', 'weight', 'nonsustained', 'area', 'detached', 'impact', 'arm', 'team', 'reaching', 'bounce', 'collaborator', 'causing', 'injury', 'one', 'involved', 'made', 'use', 'epps', 'time', 'incident', 'assistant', 'back', 'team', 'preparing', 'support', 'meshlevel', 'access', 'operator', 'scissor', 'performed', 'support', 'crown', 'time', 'piece', 'rock', 'cmxcmxcm', 'pass', 'cocada', 'support', 'mesh', 'height', 'meter', 'towards', 'platform', 'team', 'breaking', 'particle', 'one', 'reach', 'right', 'eye', 'causing', 'injurylevel', 'access', 'operator', 'scissor', 'carried', 'support', 'right', 'gable', 'platform', 'arranged', 'place', 'split', 'set', 'drill', 'squat', 'position', 'introduced', 'bolt', 'moment', 'cocada', 'support', 'mesh', 'fall', 'crown', 'piece', 'rock', 'cmxcmxcm', 'approximate', 'height', 'impacting', 'cervical', 'region', 'collaborator', 'causing', 'lesion', 'described', 'time', 'accident', 'crown', 'held', 'collaborator', 'used', 'safety', 'glass', 'glovesemployee', 'performing', 'cutting', 'activity', 'carbon', 'steel', 'pipe', 'attached', 'band', 'saw', 'machine', 'due', 'uneven', 'weight', 'distribution', 'tube', 'moved', 'downward', 'end', 'projected', 'upwards', 'pressing', 'thumbservant', 'would', 'remove', 'dish', 'bowl', 'sink', 'picking', 'set', 'plate', 'one', 'broken', 'broken', 'edge', 'causing', 'injury', 'chiropactyl', 'right', 'handtimes', 'collaborator', 'performing', 'evacuation', 'inchancables', 'mine', 'present', 'strip', 'phase', 'notice', 'piece', 'support', 'mesh', 'positioned', 'frame', 'return', 'belt', 'several', 'attempt', 'remove', 'mesh', 'belt', 'movement', 'using', 'metal', 'rake', 'support', 'mesh', 'yield', 'moving', 'direction', 'rotation', 'return', 'belt', 'hitting', 'collaborator', 'hand', 'metal', 'structure', 'causing', 'contusion', 'left', 'hand', 'time', 'accident', 'employee', 'used', 'leather', 'glovestopographic', 'survey', 'stp', 'east', 'zone', 'victim', 'coworker', 'decide', 'continue', 'work', 'stp', 'west', 'injured', 'person', 'walk', 'behind', 'coworker', 'meter', 'arriving', 'loading', 'zone', 'intersection', 'rpa', 'injured', 'person', 'asks', 'sccop', 'operator', 'stop', 'pas', 'equipment', 'stopped', 'victim', 'pass', 'behind', 'partner', 'stuck', 'gable', 'trying', 'avoid', 'accumulation', 'water', 'take', 'third', 'step', 'puddle', 'injured', 'person', 'step', 'false', 'fall', 'floor', 'causing', 'injuryemployee', 'report', 'carrying', 'activity', 'area', 'expedition', 'remove', 'overall', 'contact', 'material', 'contaminated', 'sleeve', 'caused', 'degree', 'burn', 'right', 'forearm', 'hour', 'row', 'cell', 'suction', 'partner', 'remove', 'suction', 'hose', 'untimely', 'splash', 'electrolyte', 'solution', 'left', 'eye', 'immediately', 'referred', 'medical', 'serviceexecution', 'area', 'cleaning', 'activity', 'using', 'hoe', 'employee', 'hit', 'fixed', 'metal', 'structure', 'area', 'coming', 'reach', 'abdomen', 'leftcollaborator', 'cleaning', 'sink', 'copper', 'repulping', 'area', 'moment', 'filling', 'truck', 'shovel', 'project', 'sludge', 'towards', 'lens', 'soiling', 'obstructing', 'vision', 'worker', 'indicates', 'removing', 'lens', 'clean', 'mud', 'particle', 'enter', 'left', 'eye', 'causing', 'discomfort', 'referred', 'medical', 'center', 'corresponding', 'attentionclerk', 'cutting', 'excess', 'fiberglass', 'passing', 'box', 'contact', 'blade', 'marble', 'saw', 'cut', 'glove', 'caused', 'wound', 'right', 'handlevel', 'unicon', 'plant', 'collaborator', 'shuttering', 'work', 'concrete', 'water', 'sedimentation', 'basin', 'moment', 'nailing', 'wood', 'supply', 'another', 'inch', 'strip', 'feel', 'metallic', 'hammer', 'loosen', 'wooden', 'handle', 'fix', 'grab', 'hammer', 'head', 'hit', 'handle', 'vertically', 'wood', 'generating', 'injury', 'time', 'accident', 'employee', 'use', 'safety', 'glovessurface', 'dining', 'room', 'employee', 'unit', 'collaborator', 'performed', 'chicken', 'habilitation', 'lunch', 'using', 'kitchen', 'knife', 'come', 'contact', 'distal', 'part', 'second', 'finger', 'left', 'hand', 'causing', 'injury', 'described', 'accident', 'employee', 'use', 'specific', 'height', 'glove', 'type', 'workmaintenance', 'work', 'vertical', 'pump', 'zinc', 'concentrate', 'three', 'mechanic', 'performing', 'lifting', 'maneuver', 'able', 'position', 'pump', 'drawer', 'instant', 'pump', 'becomes', 'clogged', 'reduced', 'space', 'work', 'area', 'order', 'release', 'pump', 'place', 'young', 'lady', 'lower', 'part', 'time', 'released', 'turn', 'untimely', 'hitting', 'middle', 'finger', 'injured', 'person', 'right', 'hand', 'trellex', 'hosesection', 'row', 'cell', 'worker', 'performs', 'anode', 'lifting', 'correct', 'short', 'circuit', 'using', 'auxiliary', 'hoist', 'nylon', 'sling', 'time', 'sling', 'released', 'anode', 'hit', 'back', 'right', 'hand', 'causing', 'injury', 'worker', 'seen', 'medical', 'transferred', 'clinic', 'external', 'evaluationcheck', 'list', 'area', 'survey', 'operator', 'slipped', 'foliage', 'leucenas', 'fellparticipating', 'general', 'held', 'outside', 'area', 'central', 'locker', 'room', 'employee', 'bitten', 'beeemployee', 'report', 'performing', 'maintenance', 'activity', 'pump', 'tunnel', 'pulling', 'rotor', 'struck', 'piece', 'mallet', 'slipped', 'hand', 'reaching', 'lower', 'part', 'left', 'leg', 'causing', 'injurytrying', 'release', 'pipe', 'hdp', 'pipe', 'long', 'diameter', 'stuck', 'support', 'mesh', 'master', 'loader', 'assistant', 'pull', 'pipe', 'release', 'pipe', 'released', 'hit', 'lateral', 'part', 'cheekbone', 'eyelid', 'worker', 'right', 'generating', 'described', 'injurycity', 'conchucos', 'ancash', 'participating', 'patronal', 'feast', 'representing', 'company', 'mounted', 'horse', 'part', 'ceremony', 'throwing', 'fruit', 'toy', 'people', 'attending', 'public', 'event', 'noise', 'material', 'pyrotechnic', 'people', 'trying', 'collect', 'gift', 'caused', 'horse', 'front', 'close', 'horse', 'frightened', 'kicked', 'back', 'hitting', 'lower', 'limbsemployee', 'removing', 'strap', 'chemical', 'container', 'projected', 'toward', 'reaching', 'lower', 'lip', 'anterior', 'chest', 'strap', 'contaminated', 'caustic', 'soda', 'caused', 'degree', 'burncutting', 'vegetation', 'open', 'bite', 'using', 'sickle', 'assistant', 'struck', 'vine', 'twice', 'liana', 'ruptured', 'top', 'branch', 'projected', 'face', 'auxiliary', 'causing', 'cut', 'upper', 'lipseptember', 'approximately', 'preventive', 'maintenance', 'debarking', 'machine', 'bearing', 'assembly', 'made', 'anode', 'cleaning', 'roller', 'fitting', 'bearing', 'final', 'position', 'staff', 'used', 'chisel', 'pound', 'rope', 'position', 'bearing', 'worker', 'place', 'left', 'hand', 'near', 'head', 'chisel', 'warp', 'circumstance', 'splinter', 'embedded', 'proximal', 'part', 'thumb', 'left', 'hand', 'immediately', 'collaborator', 'communicates', 'supervisor', 'evacuated', 'medical', 'reviewemployee', 'report', 'monitoring', 'existence', 'borehole', 'tubing', 'thermal', 'recovery', 'boiler', 'ustulation', 'area', 'side', 'window', 'struck', 'projection', 'heated', 'air', 'reached', 'face', 'right', 'forearmcollaborator', 'around', 'cleaning', 'leaf', 'return', 'well', 'borehole', 'brapdd', 'slipped', 'canvas', 'edge', 'well', 'hitting', 'right', 'side', 'back', 'metal', 'structure', 'mudswathed', 'box', 'causing', 'slight', 'excoriation', 'employee', 'referred', 'local', 'hospital', 'medicated', 'released', 'activitiesemployee', 'performing', 'maintenance', 'blower', 'residual', 'water', 'projection', 'occurred', 'face', 'attempt', 'remove', 'ppe', 'injured', 'person', 'contact', 'contaminated', 'glove', 'right', 'eye', 'causing', 'irritationlubricating', 'technician', 'alfredo', 'made', 'oil', 'filling', 'reducer', 'notice', 'oil', 'leak', 'tearing', 'connection', 'hose', 'reducer', 'correcting', 'leak', 'work', 'finished', 'lubricant', 'workshop', 'remove', 'glove', 'observes', 'hand', 'affected', 'contact', 'hot', 'surface', 'medical', 'center', 'treatedmaintenance', 'access', 'moment', 'assistant', 'place', 'mini', 'split', 'set', 'adapter', 'clamp', 'locked', 'return', 'initial', 'position', 'hitting', 'collaborator', 'hand', 'causing', 'described', 'injury', 'time', 'accident', 'team', 'sustained', 'area', 'arm', 'jumbo', 'height', 'floor', 'employee', 'wearing', 'rubber', 'glovesemployee', 'preparing', 'rice', 'using', 'utensil', 'type', 'skimmer', 'stir', 'inside', 'pressure', 'cooker', 'part', 'cable', 'broke', 'reaching', 'hand', 'causing', 'blunt', 'cutcircumstances', 'operator', 'bolter', 'went', 'ladder', 'height', 'resting', 'platform', 'floor', 'level', 'slip', 'balance', 'hitting', 'back', 'handrail', 'operator', 'door', 'time', 'event', 'injured', 'person', 'used', 'eppstechnician', 'operator', 'heading', 'towards', 'zone', 'lifting', 'container', 'dust', 'zinc', 'section', 'space', 'base', 'tranquera', 'sardinel', 'slipping', 'edge', 'raspandose', 'left', 'side', 'thorax', 'treated', 'medical', 'center', 'local', 'treatment', 'returning', 'work', 'area', 'september', 'worker', 'confipetrol', 'carried', 'industrial', 'cleaning', 'outside', 'acid', 'reduction', 'tank', 'check', 'progress', 'helmet', 'mask', 'moment', 'hose', 'pipe', 'released', 'secured', 'pressure', 'clamp', 'water', 'air', 'impacting', 'lip', 'approximately', 'marco', 'isidro', 'torres', 'performing', 'pipe', 'standardization', 'moment', 'marco', 'lift', 'air', 'pipe', 'spike', 'seat', 'pipe', 'impact', 'worker', 'safety', 'guard', 'approximately', 'mechanic', 'removing', 'last', 'bolt', 'nipple', 'pump', 'lime', 'feeder', 'reactive', 'area', 'mechanic', 'positioned', 'slightly', 'flexing', 'leg', 'performs', 'upward', 'force', 'hand', 'moment', 'feel', 'pain', 'spume', 'right', 'thigh', 'mechanic', 'evacuated', 'help', 'colleague', 'medical', 'post', 'approximately', 'maintenance', 'workshop', 'unicon', 'circumstance', 'two', 'mechanical', 'technician', 'placed', 'protective', 'plate', 'mixkret', 'fuel', 'tank', 'moment', 'attempting', 'bolt', 'protective', 'plate', 'slip', 'hand', 'one', 'falling', 'directly', 'instep', 'left', 'foot', 'causing', 'injury', 'described', 'mixkret', 'operator', 'washing', 'mixkret', 'hose', 'water', 'pressure', 'necessary', 'change', 'location', 'right', 'side', 'left', 'proceeds', 'pull', 'hose', 'slip', 'feel', 'left', 'foot', 'bendscarrying', 'supply', 'operation', 'zinc', 'powder', 'container', 'using', 'crane', 'move', 'employee', 'closed', 'lower', 'lock', 'container', 'making', 'movement', 'push', 'lock', 'made', 'excessive', 'effort', 'thumb', 'right', 'hand', 'causing', 'sprainwithdrawal', 'cathode', 'sample', 'employee', 'came', 'press', 'finger', 'tool', 'cut', 'sampleintersection', 'level', 'main', 'road', 'access', 'south', 'ramp', 'collaborator', 'freed', 'tube', 'inch', 'diameter', 'gable', 'descended', 'holding', 'pipe', 'fourth', 'step', 'telescopic', 'aluminum', 'ladder', 'approximately', 'meter', 'floor', 'point', 'another', 'clamping', 'point', 'gable', 'lifted', 'lifting', 'tube', 'pull', 'worker', 'causing', 'lose', 'balance', 'fall', 'height', 'meter', 'described', 'injury', 'occurringprobe', 'bore', 'bapdd', 'around', 'hour', 'polling', 'assistant', 'luciano', 'silva', 'performing', 'maneuver', 'descending', 'rod', 'led', 'rod', 'gutter', 'leaning', 'suitably', 'came', 'escape', 'gutter', 'returning', 'toward', 'easel', 'hand', 'slipped', 'little', 'finger', 'rod', 'easel', 'realizing', 'shaft', 'returned', 'released', 'immediately', 'little', 'finger', 'partially', 'hit', 'rim', 'rod', 'easel', 'resulting', 'cut', 'auxiliary', 'taken', 'hospital', 'attended', 'wound', 'resulted', 'point', 'released', 'administrative', 'activitiesoffices', 'incimmet', 'circumstance', 'environment', 'set', 'place', 'cleaning', 'material', 'wooden', 'strip', 'placed', 'staircase', 'structure', 'container', 'strip', 'cut', 'size', 'accident', 'victim', 'coordinated', 'partner', 'put', 'pressure', 'using', 'hammer', 'holding', 'right', 'hand', 'frame', 'pressure', 'placed', 'strip', 'pushed', 'side', 'container', 'creating', 'opening', 'corrugated', 'iron', 'wall', 'time', 'continuing', 'hit', 'ribbon', 'fall', 'causing', 'wall', 'container', 'return', 'initial', 'position', 'pressing', 'tip', 'little', 'finger', 'right', 'hand', 'corrugated', 'iron', 'causing', 'accidentarea', 'equipment', 'inspection', 'staff', 'atenuz', 'trying', 'remove', 'hydraulic', 'hammer', 'safety', 'lock', 'excavator', 'mechanical', 'lubricator', 'hold', 'right', 'hand', 'hattype', 'chisel', 'equipment', 'mechanic', 'hit', 'chisel', 'pound', 'rubber', 'bump', 'remove', 'safety', 'point', 'one', 'blow', 'fall', 'edge', 'hattype', 'protector', 'causing', 'slip', 'strike', 'fourth', 'finger', 'lubricant', 'mechanic', 'right', 'hand', 'generating', 'described', 'injury', 'time', 'accident', 'lubricator', 'mechanic', 'put', 'glove', 'type', 'padapprox', 'eliseo', 'secondary', 'crushing', 'operator', 'retiring', 'snack', 'find', 'gate', 'chute', 'strip', 'open', 'approaching', 'close', 'gate', 'moment', 'operator', 'samuel', 'upper', 'platform', 'coordinate', 'operator', 'control', 'room', 'start', 'strip', 'moment', 'startup', 'product', 'project', 'particle', 'xxcm', 'impacting', 'flange', 'gate', 'projecting', 'towards', 'height', 'lens', 'respirator', 'eliseoemployee', 'cleaning', 'near', 'area', 'pneumatic', 'conveyor', 'hit', 'drop', 'sulfuric', 'acid', 'upper', 'lipemployee', 'assisted', 'support', 'gate', 'tying', 'canvas', 'frame', 'pressing', 'rope', 'canvas', 'stretched', 'metal', 'structure', 'moved', 'coming', 'wooden', 'support', 'falling', 'striking', 'employee', 'face', 'causing', 'cut', 'right', 'superciliaryphase', 'operator', 'carried', 'removal', 'inchancanbles', 'reciprocating', 'feeder', 'removing', 'split', 'set', 'support', 'rope', 'staff', 'support', 'left', 'hand', 'structure', 'protection', 'falling', 'moment', 'another', 'split', 'set', 'come', 'together', 'load', 'hit', 'distal', 'phalanx', 'fifth', 'finger', 'left', 'hand', 'generating', 'described', 'injurycircumstances', 'assistant', 'mine', 'arranging', 'advance', 'hose', 'flexible', 'nylon', 'diameter', 'proceed', 'watered', 'shot', 'fired', 'positioning', 'zone', 'support', 'deteriorated', 'last', 'blasting', 'moment', 'give', 'block', 'rock', 'cmxcmxcm', 'roof', 'work', 'height', 'meter', 'falling', 'hit', 'rebound', 'left', 'leg', 'collaborator', 'causing', 'described', 'injuryinside', 'mine', 'diamond', 'drilling', 'positive', 'drill', 'moment', 'control', 'tube', 'rescued', 'fisherman', 'winch', 'cable', 'break', 'untimely', 'developing', 'whiplash', 'effect', 'impacting', 'left', 'hand', 'drilling', 'assistant', 'causing', 'described', 'injury', 'time', 'accident', 'drilling', 'assistant', 'platform', 'frame', 'using', 'hycrontype', 'safety', 'glovesemployee', 'cleaned', 'thermal', 'recovery', 'boiler', 'using', 'air', 'boom', 'hose', 'loosened', 'pipe', 'connection', 'drawing', 'jet', 'compressed', 'air', 'toward', 'right', 'ear', 'causing', 'impact', 'noiseactivity', 'loading', 'explosive', 'front', 'level', 'gts', 'fall', 'rock', 'fragment', 'reaching', 'right', 'arm', 'blaster', 'causing', 'cutbluntcircumstances', 'mechanical', 'technician', 'work', 'colleague', 'arranged', 'accommodate', 'spare', 'rollover', 'small', 'platform', 'cart', 'floor', 'two', 'squat', 'collaborator', 'decide', 'push', 'one', 'side', 'time', 'one', 'edge', 'rollover', 'imprisons', 'third', 'finger', 'left', 'hand', 'handle', 'cart', 'right', 'side', 'causing', 'wound', 'third', 'finger', 'left', 'hand', 'time', 'accident', 'employee', 'used', 'respective', 'glovesore', 'loading', 'locomotive', 'completed', 'penultimate', 'car', 'derails', 'car', 'presence', 'fragment', 'rock', 'railway', 'line', 'weight', 'car', 'mineral', 'ton', 'get', 'back', 'track', 'mining', 'car', 'victim', 'make', 'use', 'metal', 'tube', 'length', 'meter', 'diameter', 'maneuver', 'reposition', 'mining', 'car', 'moment', 'metallic', 'tube', 'loses', 'stability', 'imprisons', 'victim', 'hand', 'strut', 'mining', 'car', 'collaborator', 'time', 'event', 'towards', 'use', 'leather', 'glovestime', 'heavy', 'equipment', 'operator', 'got', 'equipment', 'check', 'right', 'front', 'headlight', 'defective', 'scooptram', 'position', 'rim', 'position', 'left', 'leg', 'slide', 'causing', 'heavy', 'equipment', 'operator', 'fall', 'height', 'cmalimak', 'chimney', 'level', 'alimakero', 'driller', 'assistant', 'positioned', 'main', 'cage', 'guard', 'head', 'proceed', 'perform', 'rock', 'untie', 'top', 'chimney', 'time', 'teacher', 'perceives', 'spark', 'rock', 'top', 'communicates', 'assistant', 'prevented', 'falling', 'rock', 'guard', 'head', 'fragmented', 'one', 'fragment', 'fall', 'chain', 'rebound', 'rub', 'operator', 'right', 'hand', 'generating', 'described', 'injuryactivity', 'placing', 'board', 'rack', 'exchange', 'fabric', 'filter', 'one', 'plate', 'inclined', 'trying', 'put', 'plate', 'correct', 'position', 'plate', 'arm', 'pressed', 'back', 'right', 'hand', 'structure', 'easelobserving', 'pulp', 'overflow', 'overflow', 'reception', 'drawer', 'thickener', 'filter', 'operator', 'approach', 'verify', 'operation', 'pump', 'making', 'sure', 'stopped', 'press', 'keypad', 'start', 'pump', 'getting', 'start', 'proceeds', 'remove', 'guard', 'manipulates', 'motor', 'pump', 'transmission', 'strip', 'left', 'hand', 'imprisoned', 'pulley', 'motor', 'transmission', 'beltmr', 'eriks', 'completed', 'change', 'guide', 'pole', 'conveyor', 'belt', 'collaborator', 'moved', 'side', 'belt', 'remove', 'tecl', 'pass', 'stair', 'without', 'getting', 'observe', 'moment', 'collaborator', 'jhon', 'dropped', 'inchancable', 'weight', 'approx', 'entrance', 'platform', 'chute', 'discharge', 'height', 'meter', 'iron', 'grazed', 'forearm', 'finally', 'hitting', 'left', 'foot', 'height', 'instepigniting', 'furnace', 'battery', 'reflux', 'hot', 'gas', 'reaching', 'face', 'employeeapproximately', 'wilmer', 'approach', 'drying', 'tower', 'placement', 'blanket', 'cover', 'entrance', 'manhole', 'tower', 'moment', 'manhole', 'cover', 'resting', 'railing', 'slide', 'impacting', 'right', 'leg', 'cathode', 'pre', 'estriping', 'sheet', 'detached', 'bend', 'cathode', 'position', 'operator', 'assistant', 'lift', 'cathode', 'head', 'position', 'tranfer', 'moment', 'detached', 'sheet', 'exerts', 'pressure', 'cathode', 'hitting', 'palm', 'left', 'hand', 'operator', 'head', 'transfe', 'activity', 'paralyzed', 'collaborator', 'referred', 'medical', 'post', 'head', 'guardworkers', 'cesar', 'injured', 'nilton', 'receive', 'order', 'immediate', 'supervisor', 'roman', 'carry', 'assembly', 'activity', 'brace', 'length', 'approximate', 'weight', 'structure', 'nro', 'belt', 'said', 'collaborator', 'lift', 'brace', 'approach', 'installation', 'point', 'leaving', 'one', 'end', 'ground', 'resting', 'corner', 'pedestal', 'approximate', 'height', 'carrying', 'planning', 'work', 'injured', 'person', 'lift', 'end', 'part', 'floor', 'turn', 'position', 'assembly', 'moment', 'end', 'fall', 'generating', 'imprisonment', 'finger', 'left', 'hand', 'staff', 'taken', 'medical', 'center', 'supervisorregion', 'povoado', 'vista', 'martinopole', 'employee', 'fabio', 'vieira', 'performed', 'soil', 'collection', 'activity', 'field', 'together', 'auxiliary', 'manoel', 'silva', 'diassis', 'nascimento', 'around', 'crossing', 'fence', 'glove', 'attached', 'wire', 'body', 'projected', 'forward', 'causing', 'slight', 'twist', 'left', 'wrist', 'team', 'traveled', 'city', 'granja', 'employee', 'referred', 'hospital', 'consultation', 'doctor', 'diagnose', 'fracture', 'prescribing', 'remedy', 'local', 'pain', 'ice', 'pack', 'medical', 'evaluation', 'employee', 'carry', 'activity', 'normallyoperator', 'descending', 'ladder', 'sailor', 'step', 'fall', 'floor', 'going', 'step', 'falling', 'back', 'hitting', 'head', 'worker', 'used', 'chin', 'strap', 'helmet', 'safety', 'element', 'reduced', 'injury', 'blow', 'treated', 'medical', 'center', 'local', 'treatment', 'referred', 'clinic', 'reevaluationapprox', 'denis', 'made', 'mesh', 'placed', 'ventilation', 'plug', 'ladder', 'trying', 'wire', 'tie', 'suddenly', 'imbalance', 'due', 'manipulation', 'tool', 'falling', 'third', 'step', 'propiciandose', 'blow', 'right', 'knee', 'wound', 'wrist', 'right', 'hand', 'later', 'evacuated', 'post', 'received', 'first', 'aidemployee', 'report', 'upon', 'initiating', 'rlc', 'front', 'loading', 'activity', 'performing', 'emulsion', 'preparation', 'use', 'displacement', 'small', 'rock', 'fragment', 'ceiling', 'reaching', 'left', 'forearmlevel', 'dining', 'room', 'collaborator', 'finished', 'washing', 'tabolas', 'food', 'container', 'dimension', 'proceed', 'order', 'pinking', 'thumb', 'right', 'hand', 'corner', 'aluminum', 'tabola', 'generating', 'lesion', 'employee', 'time', 'accident', 'safety', 'glovesexchange', 'shockbearing', 'housing', 'employee', 'used', 'sledgehammer', 'hit', 'pipe', 'stage', 'activity', 'hammer', 'hit', 'stepladder', 'close', 'coming', 'hand', 'tool', 'projected', 'onto', 'left', 'hand', 'thumb', 'holding', 'piecewelder', 'completed', 'welding', 'work', 'reinforce', 'form', 'deepening', 'walked', 'towards', 'distant', 'truck', 'point', 'welder', 'stepped', 'fragment', 'rock', 'approx', 'generates', 'foot', 'flex', 'generates', 'injury', 'workeractivity', 'chuteo', 'ore', 'hopper', 'operator', 'locomotive', 'park', 'equipment', 'hopper', 'fill', 'first', 'car', 'moment', 'blowing', 'release', 'load', 'mud', 'flow', 'suddenly', 'appears', 'presence', 'rock', 'fragment', 'personnel', 'direction', 'flow', 'covered', 'mudtimes', 'four', 'mechanic', 'performed', 'removal', 'engine', 'positive', 'slope', 'using', 'key', 'tyrfor', 'time', 'welder', 'tightened', 'key', 'weight', 'pulling', 'chain', 'eyebolt', 'held', 'click', 'roof', 'work', 'broken', 'transversely', 'causing', 'fall', 'key', 'hitting', 'helmet', 'welder', 'mechanic', 'causing', 'cervical', 'contracture', 'tirfor', 'used', 'activity', 'second', 'protection', 'prevent', 'engine', 'fallingtimes', 'four', 'employee', 'lowered', 'metal', 'sheet', 'mxm', 'towards', 'floor', 'height', 'assembly', 'assistant', 'timely', 'remove', 'hand', 'trapping', 'ring', 'finger', 'iron', 'loose', 'earth', 'causing', 'contusion', 'ring', 'finger', 'collaborator', 'time', 'event', 'use', 'maneuver', 'gloveswithdrawal', 'metal', 'form', 'support', 'screw', 'inside', 'well', 'bolt', 'chain', 'holder', 'loosened', 'employee', 'helper', 'exerted', 'force', 'combination', 'wrench', 'bolt', 'came', 'loosen', 'immediately', 'pressing', 'ring', 'finger', 'employee', 'right', 'hand', 'support', 'hour', 'moment', 'claudio', 'tipper', 'operator', 'readjusted', 'nut', 'rear', 'tire', 'right', 'side', 'vehicle', 'using', 'wheel', 'wrench', 'tube', 'extension', 'generate', 'greater', 'force', 'torque', 'wilber', 'held', 'back', 'suffers', 'contusion', 'palm', 'right', 'hand', 'extension', 'partner', 'slip', 'handsentering', 'caustic', 'soda', 'containment', 'basin', 'place', 'hose', 'make', 'suction', 'stage', 'steam', 'formation', 'striking', 'employee', 'right', 'left', 'calfactivities', 'revegetation', 'slope', 'pit', 'pit', 'employee', 'hitting', 'sledgehammer', 'rod', 'installation', 'lifeline', 'hit', 'right', 'leg', 'causing', 'slight', 'excoriationperforming', 'doosan', 'equipment', 'hammer', 'repair', 'employee', 'try', 'remove', 'suspender', 'support', 'pound', 'rope', 'moment', 'receiving', 'blow', 'brace', 'bolt', 'cause', 'splinter', 'released', 'expelling', 'impacting', 'lower', 'left', 'limb', 'causing', 'metal', 'embedding', 'collaborator', 'notice', 'immediatelyemployee', 'report', 'performed', 'activity', 'area', 'ustulacion', 'coordination', 'maintenance', 'hit', 'dust', 'ustulado', 'causing', 'irritation', 'eye', 'regiondecember', 'accessory', 'coupling', 'gun', 'hose', 'high', 'pressure', 'pump', 'bap', 'made', 'clean', 'demister', 'cooling', 'tower', 'carrying', 'complete', 'coupling', 'turn', 'bap', 'start', 'start', 'test', 'moment', 'hose', 'come', 'gun', 'hit', 'emerson', 'holding', 'gunemployee', 'report', 'returning', 'anode', 'easel', 'even', 'bumped', 'side', 'easel', 'coming', 'swing', 'hit', 'right', 'shoulder', 'causing', 'bruisehappened', 'maintenance', 'bolter', 'equipment', 'collaborator', 'carpenter', 'hammer', 'able', 'remove', 'link', 'chain', 'advance', 'drilling', 'machine', 'moment', 'hit', 'side', 'chain', 'partner', 'hit', 'structure', 'beam', 'diverting', 'path', 'hammer', 'causing', 'strike', 'left', 'handmaid', 'walking', 'electrolysis', 'area', 'stumbled', 'fell', 'next', 'bathroom', 'room', 'bcircumstances', 'operator', 'performed', 'lifting', 'inch', 'vitaulic', 'pipe', 'imprisoned', 'structure', 'railing', 'truck', 'instant', 'push', 'pipe', 'right', 'hand', 'return', 'initial', 'position', 'hitting', 'middle', 'finger', 'employee', 'causing', 'bruiseperforming', 'movement', 'bar', 'make', 'room', 'place', 'calibrator', 'chuquillanqui', 'push', 'bar', 'hand', 'turning', 'moment', 'imprisoned', 'middle', 'finger', 'left', 'hand', 'bar', 'aheademployee', 'report', 'performed', 'soldering', 'activity', 'hit', 'eye', 'region', 'dust', 'found', 'thermal', 'insulation', 'causing', 'irritationend', 'unleashing', 'saturated', 'material', 'talus', 'crest', 'bank', 'rugged', 'taut', 'rope', 'leave', 'work', 'area', 'tension', 'moment', 'loose', 'material', 'top', 'slope', 'crumbles', 'height', 'stool', 'projecting', 'fragment', 'cmxcmxcm', 'rub', 'right', 'cheek', 'causing', 'injury', 'time', 'event', 'area', 'isolated', 'collaborator', 'epps', 'corresponding', 'activitylevel', 'geology', 'surface', 'master', 'mine', 'temporarily', 'repair', 'water', 'leakage', 'inch', 'diameter', 'metal', 'distributor', 'make', 'cut', 'rim', 'chamber', 'strip', 'wide', 'long', 'making', 'using', 'cutter', 'partner', 'stretch', 'camera', 'cutting', 'force', 'edge', 'cutter', 'make', 'contact', 'index', 'finger', 'left', 'hand', 'causing', 'superficial', 'cut', 'time', 'event', 'worker', 'wearing', 'bos', 'glovesmr', 'marcelo', 'withdrew', 'foam', 'ajax', 'oven', 'using', 'metal', 'spoon', 'empty', 'foam', 'waste', 'container', 'moment', 'splash', 'slag', 'residue', 'impacting', 'face', 'generating', 'surface', 'burn', 'worker', 'wearing', 'face', 'maskemployee', 'report', 'trying', 'remove', 'one', 'plate', 'overflow', 'system', 'ustulador', 'oven', 'finger', 'right', 'hand', 'pressed', 'tool', 'wrench', 'extension', 'overflow', 'flange', 'ustulador', 'oven', 'located', 'behind', 'performer', 'hour', 'hidalgo', 'wanting', 'climb', 'starter', 'board', 'remove', 'fan', 'stand', 'unstable', 'reel', 'driving', 'fell', 'frontally', 'height', 'mapproximately', 'alpha', 'operator', 'ronald', 'heading', 'mine', 'decides', 'stop', 'equipment', 'accommodate', 'light', 'left', 'side', 'manipulating', 'support', 'lighthouse', 'catching', 'fifth', 'finger', 'right', 'hand', 'protection', 'grid', 'support', 'hour', 'jose', 'performed', 'erasing', 'earthenware', 'section', 'turning', 'machine', 'alizado', 'ironing', 'concrete', 'tour', 'abruptly', 'imprisoning', 'left', 'hand', 'command', 'equipment', 'metal', 'structure', 'causing', 'atriction', 'back', 'left', 'handvolvo', 'workshop', 'time', 'cutting', 'steel', 'plate', 'thickness', 'installation', 'scoop', 'lip', 'oxicorte', 'equipment', 'injured', 'feel', 'discomfort', 'eye', 'time', 'accident', 'collaborator', 'made', 'use', 'full', 'epp', 'soldering', 'iron', 'lens', 'make', 'full', 'adjustment', 'presence', 'respiratormechanized', 'support', 'activity', 'level', 'tajo', 'lifting', 'support', 'mesh', 'platform', 'scissor', 'equipment', 'employee', 'stumble', 'feel', 'pain', 'heel', 'left', 'footpreparation', 'scaffolding', 'activity', 'employee', 'loading', 'piece', 'designated', 'place', 'finger', 'pressed', 'metal', 'piece', 'movedmaking', 'change', 'support', 'vertical', 'pump', 'zinc', 'two', 'mechanic', 'raised', 'beam', 'one', 'end', 'height', 'injured', 'person', 'knee', 'slip', 'hand', 'causing', 'injury', 'described', 'deslaminator', 'stop', 'untimely', 'operator', 'lower', 'lock', 'machine', 'verify', 'failure', 'detecting', 'locking', 'sheet', 'basket', 'manipulator', 'operator', 'try', 'arrange', 'sheet', 'manually', 'pulling', 'sheet', 'one', 'cut', 'palm', 'right', 'hand', 'edge', 'sheet', 'referred', 'medical', 'center', 'attentionemployee', 'performed', 'withdrawal', 'electrical', 'failure', 'engine', 'control', 'drawer', 'check', 'exchange', 'fuse', 'closed', 'door', 'drawer', 'energized', 'drawer', 'moment', 'arc', 'opened', 'reaching', 'face', 'part', 'employee', 'forearm', 'causing', 'minor', 'burnscircumstances', 'worker', 'hit', 'support', 'drill', 'beam', 'advance', 'cylinder', 'align', 'base', 'beam', 'hole', 'beam', 'place', 'bolt', 'mechanical', 'hammer', 'slip', 'inertia', 'mechanic', 'hand', 'hit', 'edge', 'beam', 'causing', 'injury', 'time', 'accident', 'employee', 'ppe', 'activitylevel', 'access', 'scissor', 'performed', 'sustaining', 'activity', 'drilling', 'drill', 'install', 'split', 'lifting', 'electrowelded', 'mesh', 'square', 'meter', 'weight', 'approximately', 'team', 'platform', 'assistant', 'slip', 'feel', 'pain', 'inner', 'edge', 'right', 'kneeauxiliary', 'general', 'service', 'paulo', 'silva', 'month', 'day', 'work', 'performing', 'activity', 'soil', 'collection', 'movement', 'equipment', 'next', 'point', 'holding', 'lever', 'encountered', 'piece', 'sloping', 'ground', 'interlaced', 'vegetation', 'caused', 'fall', 'left', 'side', 'tool', 'held', 'rapid', 'fall', 'prevented', 'employee', 'leaning', 'causing', 'shock', 'elbow', 'ground', 'employee', 'continued', 'activity', 'another', 'point', 'sample', 'collection', 'felt', 'arm', 'botheringreduction', 'activity', 'tube', 'employee', 'attached', 'tube', 'walrus', 'hit', 'tube', 'hammer', 'untied', 'walrus', 'reaching', 'fingeractivity', 'settling', 'concrete', 'block', 'ventilation', 'plug', 'wall', 'level', 'circumstance', 'worker', 'made', 'setting', 'union', 'concrete', 'block', 'polyethylene', 'pipe', 'diameter', 'pick', 'spike', 'hit', 'hit', 'top', 'worker', 'protectorlevel', 'tajo', 'area', 'completing', 'drilling', 'drill', 'loading', 'operator', 'remove', 'bit', 'jumbo', 'arm', 'walk', 'towards', 'crew', 'cabin', 'crown', 'work', 'fragment', 'rock', 'pass', 'cocada', 'mesh', 'impact', 'helmet', 'rebound', 'hit', 'right', 'shoulder', 'operator', 'generating', 'described', 'injuryupon', 'approaching', 'furnace', 'process', 'melting', 'ingot', 'struck', 'liquid', 'metal', 'projectionroutine', 'slimming', 'activity', 'kiln', 'battery', 'employee', 'began', 'remove', 'waste', 'inside', 'crucible', 'aid', 'skimmer', 'felt', 'pain', 'left', 'shoulder', 'hour', 'cesar', 'tellomoinsac', 'carrying', 'work', 'assembling', 'water', 'line', 'climb', 'cat', 'ladder', 'approximate', 'height', 'meter', 'vanishes', 'fall', 'hitting', 'way', 'transferred', 'medical', 'center', 'attentionmanipulating', 'material', 'master', 'drill', 'truck', 'operator', 'decide', 'make', 'space', 'moving', 'radiator', 'moment', 'driver', 'truck', 'imprisoned', 'little', 'finger', 'left', 'hand', 'baremployees', 'engaged', 'removal', 'material', 'excavation', 'well', 'level', 'using', 'shovel', 'placing', 'bucket', 'day', 'material', 'fell', 'pipe', 'employee', 'boot', 'friction', 'boot', 'calf', 'caused', 'superficial', 'injury', 'leg', 'block', 'moment', 'messrs', 'roger', 'injured', 'cleaned', 'drill', 'radial', 'mesh', 'inclined', 'shape', 'right', 'gable', 'moment', 'detaches', 'fragment', 'rock', 'impacting', 'shoulderemployee', 'transiting', 'grs', 'area', 'came', 'slip', 'suffering', 'twist', 'left', 'knee', 'activity', 'collecting', 'soil', 'collaborator', 'milton', 'ran', 'branch', 'attacked', 'maribondos', 'bitten', 'twice', 'head', 'pain', 'swelling', 'allergic', 'symptom', 'continued', 'activitiesprocess', 'loading', 'drill', 'carmen', 'pit', 'level', 'operator', 'position', 'basket', 'anfo', 'loader', 'equipment', 'height', 'floor', 'carry', 'loading', 'production', 'drill', 'moment', 'stone', 'slab', 'detached', 'front', 'pit', 'tilted', 'lodged', 'inside', 'basket', 'trapping', 'right', 'leg', 'collaborator', 'time', 'collaborator', 'passing', 'tubo', 'pvc', 'pipe', 'loader', 'uncover', 'fifth', 'hole', 'obstructed', 'piece', 'rock', 'operator', 'jetanol', 'accidentally', 'activates', 'air', 'valve', 'causing', 'loading', 'pipe', 'floor', 'rise', 'suddenly', 'throwing', 'prils', 'anfo', 'excess', 'pipe', 'cheekbone', 'eyelid', 'right', 'eye', 'victimcircumstances', 'tipper', 'mceisa', 'moved', 'operator', 'see', 'congestion', 'equipment', 'front', 'unit', 'ramp', 'distance', 'meter', 'access', 'decides', 'get', 'cab', 'turning', 'vehicle', 'suddenly', 'slide', 'second', 'rung', 'ground', 'hitting', 'right', 'forearm', 'region', 'fender', 'rungmoment', 'entering', 'mouth', 'tunel', 'employee', 'move', 'left', 'side', 'locomotive', 'locomotive', 'personnel', 'transfer', 'stationed', 'entrance', 'mouth', 'without', 'noticing', 'protruding', 'abutment', 'said', 'locomotive', 'bottom', 'hitting', 'right', 'knee', 'metal', 'stirrup', 'noted', 'operator', 'continued', 'duty', 'watch', 'without', 'reporting', 'happened', 'extraction', 'supervisor', 'upon', 'noticing', 'discomfort', 'partner', 'knee', 'immediately', 'evacuated', 'natclar', 'reporting', 'control', 'centerassembly', 'activity', 'polypropylene', 'pipe', 'diameter', 'employee', 'stepped', 'pipe', 'flange', 'twisted', 'right', 'footupon', 'entering', 'mine', 'interior', 'bodeguero', 'located', 'litorina', 'last', 'convoy', 'displacement', 'litorina', 'derails', 'advance', 'approximately', 'meter', 'operator', 'observes', 'event', 'entering', 'entrance', 'gate', 'paralyzes', 'displacement', 'convoy', 'winemaker', 'full', 'epps', 'performing', 'soil', 'activity', 'collaborator', 'alex', 'used', 'pickaxe', 'assist', 'opening', 'collection', 'hole', 'struck', 'ferranta', 'ground', 'fragment', 'rock', 'projected', 'forehead', 'causing', 'small', 'cut', 'activity', 'paralyzed', 'moment', 'necessary', 'doctor', 'employee', 'continued', 'activity', 'normallyemployee', 'performing', 'drilling', 'activity', 'probe', 'level', 'gps', 'positioning', 'needle', 'stem', 'came', 'hit', 'left', 'hand', 'ring', 'finger', 'retraction', 'box', 'causing', 'superficial', 'injury', 'performing', 'geological', 'mapping', 'activity', 'geologist', 'manoel', 'silva', 'accompanied', 'geologist', 'luciano', 'santos', 'dayme', 'make', 'crossing', 'side', 'fence', 'barbed', 'wire', 'known', 'region', 'goat', 'fence', 'base', 'height', 'made', 'rod', 'interlaced', 'horizontally', 'upwards', 'made', 'little', 'barbed', 'wire', 'barbed', 'around', 'jumped', 'fence', 'still', 'fence', 'managed', 'sweep', 'vegetation', 'left', 'foot', 'even', 'supporting', 'foot', 'ground', 'stump', 'approximately', 'came', 'break', 'sole', 'boot', 'cause', 'perforation', 'left', 'foot', 'height', 'fingerscollaborator', 'completed', 'misalignment', 'nut', 'left', 'side', 'chute', 'scraper', 'strip', 'get', 'turn', 'hit', 'head', 'guard', 'railing', 'hitting', 'lens', 'generating', 'injurylevel', 'worker', 'performed', 'chuteo', 'ore', 'hopper', 'second', 'car', 'perceived', 'slip', 'water', 'mud', 'hopper', 'decided', 'leave', 'platform', 'already', 'second', 'rung', 'ladder', 'access', 'water', 'increase', 'fragment', 'rock', 'slide', 'hit', 'back', 'worker', 'causing', 'fall', 'hit', 'right', 'forearm', 'left', 'knee', 'hour', 'approximately', 'circumstance', 'administrative', 'ssomac', 'arranged', 'move', 'guillotine', 'right', 'side', 'towards', 'center', 'table', 'make', 'cut', 'enmicadas', 'page', 'trying', 'raise', 'guillotine', 'middle', 'finger', 'right', 'hand', 'rub', 'edge', 'guillotine', 'blade', 'causing', 'cut', 'yolk', 'third', 'finger', 'right', 'handpreparation', 'office', 'cleaning', 'activity', 'employee', 'made', 'use', 'stair', 'railing', 'contact', 'clamp', 'used', 'lock', 'signaling', 'boardactivity', 'packaging', 'cylindrical', 'piece', 'easel', 'employee', 'carried', 'piece', 'designated', 'place', 'finger', 'pressed', 'metal', 'piece', 'movedinjured', 'collaborator', 'one', 'colleague', 'wanted', 'move', 'rim', 'scoop', 'tire', 'using', 'strength', 'threw', 'rim', 'floor', 'make', 'roll', 'instant', 'eyelash', 'hit', 'fifth', 'finger', 'right', 'hand', 'ring', 'producing', 'injuryaveraging', 'operator', 'daniel', 'removed', 'cleaning', 'accessory', 'mobile', 'channel', 'line', 'supported', 'left', 'hand', 'rail', 'motion', 'moment', 'crushing', 'finger', 'left', 'hand', 'occurs', 'injury', 'occurs', 'collaborator', 'referred', 'medical', 'carespillway', 'circumstance', 'worker', 'cleaning', 'use', 'absorbent', 'cloth', 'oil', 'residue', 'right', 'edge', 'atlas', 'compressor', 'bonnet', 'open', 'functioning', 'rag', 'fall', 'inside', 'ompressor', 'attempt', 'remove', 'hooked', 'fan', 'propeller', 'pulling', 'worker', 'left', 'hand', 'toward', 'propeller', 'causing', 'injuryperforming', 'carpentry', 'work', 'collaborator', 'hit', 'second', 'finger', 'left', 'hand', 'hammer', 'held', 'right', 'hand', 'causing', 'bruise', 'height', 'nail', 'evaluation', 'carried', 'medical', 'center', 'unit', 'final', 'diagnosis', 'contusion', 'fingerpreparing', 'mount', 'polypropylene', 'tubing', 'employee', 'pulled', 'pickup', 'truck', 'positioned', 'place', 'pressing', 'finger', 'tube', 'concrete', 'wallmaintenance', 'peristaltic', 'pump', 'change', 'internal', 'hose', 'rupture', 'tubing', 'reserve', 'pump', 'ruptured', 'started', 'operate', 'designing', 'solution', 'heated', 'towards', 'employee', 'reaching', 'left', 'forearm', 'causing', 'irritation', 'skinmaintenance', 'peristaltic', 'pump', 'change', 'internal', 'hose', 'rupture', 'tubing', 'reserve', 'pump', 'disrupted', 'started', 'operate', 'designing', 'solution', 'heated', 'towards', 'employee', 'reaching', 'left', 'forearm', 'causing', 'burnnv', 'south', 'mechanic', 'loosens', 'bolt', 'intermediate', 'cardan', 'protector', 'dumper', 'protector', 'released', 'imprisons', 'first', 'finger', 'left', 'hand', 'connector', 'hydraulic', 'steering', 'cylinder', 'position', 'performing', 'magnetometric', 'using', 'gps', 'collaborator', 'antonio', 'bumped', 'top', 'field', 'hat', 'branch', 'attacked', 'maribondos', 'bitten', 'behind', 'ear', 'another', 'shoulder', 'continued', 'activity', 'felt', 'pain', 'swellingaveraging', 'office', 'ajani', 'liliana', 'prepares', 'store', 'folder', 'warehouse', 'place', 'come', 'iglu', 'going', 'two', 'step', 'diagonally', 'sits', 'left', 'foot', 'edge', 'second', 'step', 'causing', 'foot', 'bend', 'left', 'inward', 'stabilizes', 'quickly', 'avoiding', 'falling', 'groundmoment', 'extracting', 'bolt', 'chuck', 'rotation', 'unit', 'vsd', 'instant', 'made', 'hit', 'rope', 'base', 'support', 'bolt', 'fragment', 'metal', 'structure', 'projected', 'impacting', 'face', 'mechanic', 'freddy', 'described', 'injurypainting', 'pumping', 'pipe', 'completed', 'person', 'involved', 'involuntarily', 'touch', 'face', 'hand', 'glove', 'full', 'paint', 'clean', 'make', 'use', 'dry', 'industrial', 'cloth', 'begin', 'rub', 'face', 'period', 'time', 'second', 'continuously', 'finally', 'paint', 'face', 'cleaned', 'friction', 'generates', 'described', 'injuryconclusion', 'unloading', 'ore', 'amp', 'plate', 'tipper', 'pit', 'driver', 'notice', 'stretch', 'support', 'mesh', 'stuck', 'hopper', 'hatch', 'driver', 'get', 'equipment', 'hopper', 'lifted', 'remove', 'hand', 'mesh', 'generating', 'force', 'fine', 'particle', 'rock', 'fall', 'one', 'impregnated', 'eye', 'injured', 'time', 'incident', 'injured', 'person', 'used', 'measuring', 'glass', 'surchargesmr', 'walter', 'putting', 'tool', 'hopper', 'atlas', 'truck', 'parked', 'cruise', 'level', 'obb', 'mining', 'operation', 'van', 'arrived', 'driven', 'engineer', 'parked', 'behind', 'truck', 'atlas', 'approximately', 'meter', 'without', 'placed', 'safety', 'block', 'went', 'request', 'data', 'drilling', 'later', 'assistant', 'simba', 'opened', 'gate', 'dropping', 'bit', 'hopper', 'mine', 'truck', 'untimely', 'vehicle', 'moved', 'forward', 'pinning', 'mechanic', 'right', 'legtransport', 'piece', 'wood', 'aid', 'wheelbarrow', 'employee', 'felt', 'prick', 'right', 'leg', 'moment', 'stopped', 'activity', 'removed', 'legging', 'shaking', 'pant', 'noticed', 'small', 'scorpionmining', 'cycle', 'chimney', 'starting', 'drilling', 'work', 'anchor', 'lane', 'alimak', 'system', 'collaborator', 'squat', 'pick', 'manual', 'tool', 'platform', 'moment', 'jackleg', 'team', 'loses', 'position', 'project', 'towards', 'back', 'collaborator', 'generating', 'injurysupport', 'process', 'circumstance', 'assistant', 'performs', 'last', 'cut', 'transverse', 'length', 'mesh', 'mesh', 'generates', 'movement', 'towards', 'operator', 'hit', 'face', 'causing', 'described', 'injury', 'assisting', 'gps', 'magnetometric', 'collaborator', 'gilvanio', 'bumped', 'top', 'field', 'hat', 'branch', 'attacked', 'maribondos', 'moth', 'went', 'towards', 'eye', 'due', 'use', 'sunglass', 'attack', 'region', 'prevented', 'insect', 'moved', 'side', 'face', 'getting', 'caught', 'ear', 'back', 'field', 'hat', 'making', 'helper', 'get', 'two', 'bite', 'behind', 'ear', 'gilvanio', 'allergic', 'marimbondos', 'bite', 'soon', 'activity', 'immediately', 'paralyzed', 'drove', 'car', 'accident', 'took', 'medicine', 'antiallergic', 'already', 'used', 'situation', 'work', 'indicated', 'another', 'doctor', 'avoid', 'swelling', 'marcelo', 'responsible', 'project', 'also', 'field', 'mapping', 'activity', 'called', 'radio', 'immediately', 'assistant', 'felt', 'good', 'taken', 'emergency', 'hospital', 'lavras', 'sul', 'consulted', 'doctor', 'took', 'antiallergic', 'released', 'around', 'moment', 'staff', 'impromec', 'company', 'heading', 'towards', 'pique', 'support', 'shotcrete', 'casting', 'job', 'one', 'electrician', 'identify', 'lane', 'water', 'road', 'right', 'leg', 'enters', 'gutter', 'depth', 'causing', 'injury', 'service', 'litorina', 'paralyzed', 'entrance', 'personnelemployee', 'descending', 'ladder', 'inspection', 'milling', 'cyclone', 'give', 'access', 'floor', 'behind', 'mill', 'platform', 'iscmg', 'floor', 'gave', 'way', 'fell', 'height', 'approximately', 'meter', 'meter', 'material', 'ore', 'platform', 'decreasing', 'height', 'fall', 'impactarea', 'lloclla', 'meter', 'substation', 'nro', 'circumstance', 'worker', 'preparing', 'pick', 'rope', 'floor', 'several', 'fragment', 'rock', 'slide', 'slope', 'hill', 'one', 'fragment', 'diameter', 'approximately', 'impact', 'face', 'worker', 'producing', 'aforementioned', 'injuryperforming', 'cleaning', 'activity', 'area', 'near', 'grinding', 'employee', 'handling', 'block', 'triangular', 'shaped', 'rock', 'measuring', 'movement', 'lost', 'balance', 'falling', 'rock', 'thumb', 'left', 'hand', 'injuringcarrying', 'refractory', 'brick', 'chopping', 'activity', 'order', 'place', 'support', 'bus', 'bar', 'section', 'particle', 'detached', 'hitting', 'assistant', 'right', 'arm', 'one', 'meter', 'away', 'work', 'area', 'provoking', 'wound', 'arm', 'treated', 'medical', 'center', 'returned', 'usual', 'duty', 'soil', 'sampling', 'region', 'sta', 'employee', 'rafael', 'danillo', 'silva', 'attacked', 'bee', 'test', 'rushed', 'away', 'place', 'employee', 'rafael', 'took', 'bite', 'one', 'chin', 'one', 'chest', 'one', 'neck', 'one', 'hand', 'glove', 'employee', 'took', 'bite', 'one', 'hand', 'glove', 'head', 'employee', 'danillo', 'took', 'bite', 'left', 'arm', 'uniform', 'first', 'one', 'sketched', 'allergy', 'swelling', 'sting', 'site', 'activity', 'stopped', 'evaluate', 'site', 'verifying', 'test', 'remained', 'line', 'left', 'siteemployee', 'hitchhiking', 'cep', 'truck', 'equipment', 'crossed', 'central', 'canterio', 'track', 'catch', 'key', 'wheel', 'loader', 'another', 'operator', 'stopped', 'opposite', 'direction', 'upon', 'returning', 'truck', 'hit', 'arm', 'left', 'loader', 'tire', 'traveling', 'along', 'road', 'passed', 'cep', 'right', 'approx', 'collaborator', 'duval', 'sampler', 'preparing', 'change', 'remove', 'bucket', 'pulp', 'sample', 'plant', 'courier', 'slipped', 'fell', 'ground', 'supporting', 'right', 'hand', 'generating', 'lesion', 'described', 'performing', 'mag', 'activity', 'employee', 'murilo', 'silva', 'moving', 'acquisition', 'line', 'came', 'across', 'small', 'drainage', 'approximately', 'wide', 'small', 'gap', 'traversed', 'drainage', 'employee', 'rested', 'right', 'foot', 'ravine', 'came', 'rest', 'causing', 'right', 'ankle', 'twist', 'soon', 'twisting', 'activity', 'paralyzed', 'employee', 'taken', 'local', 'hospital', 'xray', 'taken', 'examination', 'made', 'physician', 'serious', 'injury', 'found', 'small', 'swelling', 'released', 'normal', 'activitieslevel', 'license', 'plate', 'went', 'level', 'surface', 'pilot', 'trying', 'locate', 'radio', 'answer', 'call', 'concrete', 'plant', 'distracted', 'crash', 'vehicle', 'left', 'gable', 'vehicle', 'turn', 'right', 'side', 'happens', 'copilot', 'hit', 'right', 'hand', 'fragment', 'broken', 'glass', 'window', 'right', 'side', 'vehiclescoop', 'heading', 'rpa', 'cutoff', 'point', 'cro', 'south', 'unloaded', 'visualizes', 'truck', 'parked', 'light', 'engine', 'ignited', 'inside', 'thrust', 'scoop', 'found', 'accumulating', 'dismount', 'operator', 'stop', 'scoop', 'get', 'tell', 'driver', 'truck', 'leave', 'find', 'one', 'decides', 'look', 'driver', 'top', 'cro', 'south', 'find', 'return', 'scoop', 'meter', 'visualizes', 'light', 'lamp', 'shining', 'direction', 'gable', 'approaching', 'find', 'deceased', 'lying', 'side', 'scoop', 'proceeds', 'give', 'immediate', 'notice', 'supervisory', 'shift', 'control', 'center', 'emergency', 'centeremployee', 'performing', 'maintenance', 'filter', 'press', 'filtration', 'area', 'grs', 'dismantled', 'hose', 'clamp', 'turning', 'motion', 'contact', 'burr', 'tip', 'one', 'screw', 'exposed', 'causing', 'cut', 'glove', 'wound', 'quirodactilo', 'left', 'handnv', 'chamber', 'accumulation', 'aggregate', 'worker', 'made', 'cast', 'shotcrete', 'towards', 'crown', 'work', 'perceives', 'discomfort', 'fogging', 'full', 'face', 'decides', 'take', 'chooses', 'use', 'safety', 'glass', 'comfort', 'continue', 'thrown', 'shotcrete', 'suffers', 'projection', 'shotcrete', 'rebound', 'particle', 'left', 'eyeteam', 'vms', 'project', 'performed', 'soil', 'collection', 'xixas', 'target', 'member', 'team', 'moving', 'one', 'collection', 'point', 'another', 'fabio', 'ahead', 'team', 'stinging', 'behind', 'robson', 'manoel', 'silva', 'near', 'collection', 'point', 'surprised', 'swarm', 'bee', 'inside', 'play', 'near', 'ground', 'visibility', 'wood', 'hissing', 'noise', 'fabio', 'passed', 'stump', 'robson', 'manoel', 'silva', 'attacked', 'bee', 'robson', 'sting', 'left', 'arm', 'uniform', 'manoel', 'silva', 'prick', 'lip', 'screen', 'ripped', 'tangled', 'branch', 'escapepreparation', 'solubilization', 'activity', 'sample', 'chapel', 'maid', 'moving', 'vial', 'nitric', 'acid', 'detached', 'doser', 'causing', 'projection', 'region', 'face', 'upper', 'limbsactivity', 'changing', 'conveyor', 'belt', 'feeding', 'primary', 'mill', 'mechanic', 'entered', 'discharge', 'chute', 'clean', 'material', 'time', 'automatic', 'sampler', 'inside', 'chute', 'activated', 'trapping', 'mechanic', 'height', 'chest', 'time', 'accident', 'mechanic', 'alone', 'work', 'areaapproximately', 'hour', 'change', 'cable', 'power', 'cell', 'locked', 'cabinet', 'transformer', 'loud', 'noise', 'followed', 'oscillation', 'electrical', 'system', 'moment', 'collaborator', 'queneche', 'company', 'eissa', 'found', 'floor', 'head', 'inside', 'adjoining', 'cell', 'cabinet', 'blocked', 'assigned', 'work', 'received', 'electric', 'shockmixer', 'ecm', 'incimmet', 'moved', 'positive', 'south', 'ramp', 'direction', 'surface', 'unicon', 'concrete', 'plant', 'height', 'operator', 'observes', 'untimely', 'light', 'engine', 'control', 'control', 'respond', 'equipment', 'start', 'reverse', 'meter', 'operator', 'jump', 'cabin', 'meter', 'team', 'hit', 'right', 'gable', 'turn', 'side', 'left', 'area', 'circumstance', 'event', 'presence', 'personnel', 'equipment', 'could', 'affectedtechnician', 'magnetometric', 'survey', 'stepped', 'thorn', 'reaction', 'immediately', 'retreat', 'losing', 'balance', 'magnetometer', 'antenna', 'brokeemployee', 'report', 'assisted', 'maintenance', 'activity', 'tower', 'electrolysis', 'stepped', 'grp', 'grid', 'polymer', 'glass', 'floor', 'moving', 'causing', 'fall', 'event', 'took', 'place', 'stage', 'displacement', 'fall', 'floor', 'span', 'receiving', 'effort', 'employee', 'fall', 'grp', 'floor', 'side', 'gutter', 'floor', 'supporting', 'structure', 'employee', 'fall', 'lower', 'level', 'grp', 'flooremployee', 'report', 'supervising', 'activity', 'ustulation', 'near', 'ball', 'projection', 'hot', 'humped', 'dust', 'upper', 'floor', 'reached', 'cervical', 'neck', 'region', 'causing', 'first', 'degree', 'burnemployee', 'performed', 'task', 'hoisting', 'bigbags', 'containing', 'waelz', 'oxide', 'performing', 'several', 'hoistings', 'employee', 'suffered', 'lowvoltage', 'electric', 'shock', 'contacting', 'hoist', 'attaching', 'handle', 'bigbagemployee', 'moved', 'toward', 'structure', 'post', 'came', 'step', 'false', 'suffering', 'twisting', 'left', 'ankle', 'around', 'current', 'sediment', 'activity', 'collaborator', 'warley', 'took', 'bee', 'sting', 'neck', 'using', 'screen', 'bee', 'entered', 'bottom', 'screen', 'sting', 'team', 'decided', 'leave', 'workplace', 'due', 'presence', 'bee', 'collaborator', 'reaction', 'continued', 'work', 'normallyindustrial', 'cleaning', 'worker', 'cristian', 'performing', 'cleaning', 'activity', 'gutter', 'striking', 'wall', 'remove', 'solid', 'solution', 'formed', 'moment', 'operator', 'hand', 'slide', 'impact', 'edge', 'gutter', 'causing', 'blow', 'little', 'finger', 'left', 'handlevel', 'formerly', 'level', 'hydraulic', 'filling', 'personnel', 'performed', 'installation', 'diameter', 'hdpe', 'pipe', 'ventilation', 'chimney', 'help', 'yard', 'scooptram', 'held', 'pushed', 'end', 'pipe', 'pipe', 'meter', 'length', 'moment', 'pipe', 'get', 'stuck', 'edge', 'chimney', 'causing', 'pipe', 'form', 'arc', 'height', 'injured', 'worker', 'signal', 'light', 'lamp', 'operator', 'scooptram', 'stop', 'trying', 'retire', 'line', 'fire', 'worker', 'loses', 'balance', 'light', 'contact', 'pipe', 'causing', 'fall', 'levelemployee', 'perform', 'painting', 'floor', 'fuel', 'tank', 'area', 'needed', 'cleaning', 'pouring', 'waterthinner', 'floor', 'bucket', 'slipped', 'hand', 'mixture', 'projected', 'onto', 'left', 'shoulder', 'lower', 'lip', 'causing', 'redness', 'burningexecution', 'soil', 'sampling', 'task', 'potion', 'area', 'around', 'luis', 'wca', 'opening', 'machete', 'bitten', 'wasp', 'back', 'right', 'hand', 'using', 'time', 'incident', 'epi', 'needed', 'activity', 'employee', 'evaluated', 'technician', 'found', 'mild', 'localized', 'swelling', 'wound', 'employee', 'reported', 'feel', 'pain', 'could', 'continue', 'activitytower', 'old', 'disabled', 'deenergized', 'dismantled', 'located', 'city', 'pasco', 'last', 'profile', 'base', 'tower', 'previously', 'disassembled', 'cut', 'using', 'oxyfuel', 'equipment', 'proingcom', 'security', 'supervisor', 'foreman', 'outside', 'fenced', 'area', 'supervising', 'activity', 'indicate', 'stoppage', 'activity', 'evacuation', 'refuge', 'due', 'orange', 'alert', 'indicated', 'detector', 'storm', 'evacuation', 'last', 'employee', 'inside', 'fenced', 'area', 'loud', 'sound', 'heard', 'provoking', 'fright', 'caused', 'staff', 'throw', 'floor', 'inside', 'area', 'proceeded', 'leave', 'work', 'area', 'mean', 'ladder', 'apparently', 'loud', 'sound', 'would', 'correspond', 'electrical', 'discharge', 'cable', 'guard', 'pass', 'old', 'towerstower', 'old', 'disabled', 'deenergized', 'disassembled', 'located', 'city', 'pasco', 'cutting', 'last', 'profile', 'base', 'tower', 'previously', 'disassembled', 'carried', 'using', 'oxyfuel', 'equipment', 'safety', 'supervisor', 'proingcom', 'foreman', 'external', 'part', 'fenced', 'area', 'supervising', 'activity', 'indicate', 'paralysis', 'activity', 'evacuation', 'refuge', 'due', 'orange', 'alert', 'indicated', 'detector', 'storm', 'evacuation', 'last', 'employee', 'inside', 'fenced', 'area', 'loud', 'sound', 'heard', 'provoking', 'scare', 'caused', 'staff', 'throw', 'floor', 'within', 'area', 'proceeded', 'leave', 'work', 'area', 'mean', 'staircase', 'apparently', 'loud', 'sound', 'would', 'correspond', 'electrical', 'discharge', 'cable', 'guard', 'pass', 'old', 'towersend', 'concreting', 'activity', 'employee', 'turned', 'concrete', 'rolling', 'handle', 'make', 'return', 'equipment', 'warehouse', 'bumped', 'tip', 'mangote', 'inferior', 'lip', 'causing', 'hematomamarking', 'management', 'point', 'supervision', 'breeder', 'enter', 'work', 'carry', 'ventilation', 'inspection', 'surveying', 'work', 'stop', 'turn', 'fan', 'proceed', 'air', 'flow', 'measurement', 'fan', 'turned', 'due', 'pressure', 'break', 'fastening', 'point', 'toe', 'sleeve', 'fall', 'floor', 'generating', 'chicoteo', 'gable', 'gable', 'product', 'chicoteo', 'fragment', 'aggregate', 'shocrete', 'projected', 'face', 'injured', 'person', 'producing', 'injuryexecution', 'service', 'opening', 'pricked', 'future', 'work', 'around', 'employee', 'pedro', 'second', 'line', 'equipment', 'stung', 'wasp', 'right', 'portion', 'neck', 'beetle', 'small', 'size', 'seen', 'employee', 'bite', 'causing', 'employee', 'shock', 'insect', 'manifested', 'employee', 'used', 'ppes', 'required', 'activity', 'developed', 'bite', 'occurred', 'collar', 'shirt', 'face', 'shield', 'technician', 'responsible', 'performing', 'work', 'evaluated', 'sting', 'together', 'injured', 'employee', 'found', 'localized', 'swelling', 'allergy', 'would', 'need', 'paralyze', 'activity', 'followed', 'normallymoments', 'william', 'carried', 'inspection', 'cut', 'block', 'level', 'oba', 'loading', 'platform', 'could', 'realized', 'instant', 'observed', 'drill', 'positive', 'radial', 'one', 'covered', 'shotcreteados', 'hears', 'noise', 'upper', 'part', 'pit', 'detachment', 'bank', 'center', 'pit', 'william', 'back', 'leave', 'work', 'metatarsal', 'boot', 'make', 'contact', 'rock', 'floor', 'cause', 'lose', 'balance', 'stumble', 'gable', 'employee', 'lima', 'silva', 'composing', 'team', 'opening', 'bite', 'survey', 'team', 'consisted', 'one', 'mining', 'technician', 'three', 'assistant', 'moving', 'bite', 'touched', 'left', 'foot', 'stump', 'tucum', 'ground', 'covered', 'dry', 'leaf', 'vegetation', 'near', 'drainage', 'felt', 'thorn', 'piercing', 'foot', 'told', 'mining', 'technician', 'happened', 'teammate', 'removed', 'thorn', 'pierced', 'top', 'boot', 'removal', 'spine', 'foot', 'washed', 'verified', 'injury', 'event', 'technician', 'waxed', 'activity', 'returned', 'city', 'porangatu', 'necessary', 'take', 'employee', 'health', 'unitapprox', 'victor', 'time', 'made', 'visual', 'inspection', 'scaffolding', 'suffered', 'slight', 'blow', 'level', 'right', 'ear', 'metallic', 'extension', 'chute', 'conveyor', 'chainexecution', 'soil', 'sampling', 'task', 'potion', 'area', 'around', 'pablo', 'moving', 'bite', 'bitten', 'right', 'elbow', 'wasp', 'sleeve', 'uniform', 'using', 'time', 'incident', 'ppe', 'needed', 'activity', 'employee', 'evaluated', 'team', 'found', 'mild', 'injury', 'localized', 'swelling', 'employee', 'reported', 'feel', 'pain', 'could', 'continue', 'activityactivity', 'front', 'sanitation', 'slaughter', 'choco', 'scaller', 'local', 'underground', 'mine', 'level', 'front', 'upper', 'jka', 'operator', 'performed', 'front', 'sanitation', 'rock', 'block', 'roof', 'hit', 'equipment', 'accident', 'victim', 'promptly', 'rescued', 'unit', 'emergency', 'brigade', 'transported', 'outpatient', 'clinic', 'received', 'first', 'care', 'transferred', 'municipal', 'paracatuperforming', 'cleaning', 'material', 'mineral', 'accumulates', 'steel', 'plate', 'concrete', 'base', 'rest', 'shown', 'photograph', 'steel', 'plate', 'thickness', 'order', 'complete', 'cleaning', 'worker', 'decide', 'weld', 'steel', 'plate', 'support', 'eyelet', 'type', 'end', 'fixed', 'point', 'fastening', 'pin', 'helical', 'support', 'way', 'lift', 'plate', 'help', 'key', 'remove', 'accumulated', 'material', 'instant', 'pulling', 'chain', 'tecla', 'injured', 'one', 'left', 'hand', 'resting', 'concrete', 'wall', 'line', 'fire', 'product', 'tension', 'exerted', 'tecle', 'helical', 'bolt', 'break', 'chain', 'lash', 'index', 'finger', 'generating', 'injury', 'time', 'accident', 'accident', 'victim', 'used', 'epps', 'including', 'glovescircumstances', 'efrain', 'osorio', 'felix', 'mina', 'entered', 'interior', 'pocket', 'level', 'activated', 'compressed', 'air', 'gun', 'installed', 'lower', 'part', 'structure', 'nozzle', 'communicates', 'air', 'lung', 'internal', 'part', 'pocket', 'projecting', 'violent', 'flow', 'air', 'blow', 'left', 'leg', 'worker', 'generates', 'stun', 'noise', 'producedemployee', 'report', 'performed', 'routine', 'activity', 'foundry', 'area', 'necessary', 'fit', 'last', 'zamac', 'ingot', 'one', 'package', 'point', 'ingot', 'slipped', 'hit', 'back', 'right', 'foot', 'causing', 'pain', 'safety', 'footwear', 'worn', 'employee', 'steel', 'toe', 'metatarsal', 'protectoremployee', 'used', 'lever', 'remove', 'sealing', 'ring', 'front', 'tire', 'wheel', 'loader', 'lhd', 'lever', 'came', 'release', 'fulcrum', 'ring', 'press', 'left', 'ring', 'finger', 'loader', 'shell', 'causing', 'traumatism', 'tip', 'said', 'fingeremployee', 'report', 'performed', 'routine', 'activity', 'area', 'electrolysis', 'trying', 'position', 'one', 'cathode', 'sheet', 'easel', 'hit', 'sleeve', 'caused', 'cut', 'superficially', 'left', 'handemployee', 'engaged', 'adjusting', 'metallic', 'shape', 'using', 'tether', 'striking', 'shape', 'tether', 'cable', 'hit', 'lifeline', 'projecting', 'hand', 'metal', 'structure', 'shape', 'causing', 'superficial', 'injury', 'ring', 'finger', 'right', 'handcircumstances', 'staff', 'performing', 'rhyming', 'caving', 'pipe', 'suspended', 'approximately', 'floor', 'assistant', 'placed', 'stilson', 'key', 'pipe', 'fit', 'pipe', 'height', 'base', 'rod', 'holder', 'operator', 'operates', 'chuck', 'slide', 'back', 'causing', 'pipe', 'slide', 'causing', 'tip', 'fourth', 'finger', 'assistant', 'right', 'hand', 'caught', 'stilson', 'key', 'base', 'rod', 'holder', 'time', 'event', 'collaborator', 'used', 'eppsemployees', 'marcio', 'sergio', 'performed', 'pump', 'pipe', 'clearing', 'activity', 'removal', 'suction', 'spool', 'flange', 'bolt', 'projection', 'pulp', 'causing', 'injuriesperforming', 'shotcrete', 'casting', 'resane', 'cruise', 'approximately', 'operator', 'placed', 'left', 'side', 'equipment', 'started', 'release', 'cubic', 'meter', 'time', 'decided', 'paralyze', 'task', 'minute', 'due', 'leak', 'water', 'roof', 'box', 'allow', 'adhesion', 'shotcrete', 'rock', 'setting', 'restarting', 'shotcrete', 'launch', 'operator', 'left', 'side', 'moved', 'right', 'side', 'equipment', 'assistant', 'operator', 'mixkret', 'see', 'pumping', 'went', 'verify', 'happened', 'returned', 'realized', 'operator', 'assume', 'fallen', 'chimney', 'left', 'job', 'ask', 'help', 'immediately', 'emergency', 'response', 'brigade', 'medical', 'service', 'activated', 'verify', 'death', 'collaborator', 'accident', 'investigation', 'beginsmaid', 'handling', 'pipette', 'sample', 'preparation', 'chemical', 'analysis', 'trying', 'place', 'threeway', 'pear', 'pipette', 'came', 'break', 'causing', 'superficial', 'cut', 'right', 'handarea', 'machine', 'tool', 'maestranza', 'mechanic', 'injured', 'operating', 'bench', 'drill', 'drilling', 'metal', 'jacket', 'lining', 'install', 'skip', 'moment', 'accompanied', 'mechanic', 'albino', 'manipulated', 'jacket', 'directed', 'maneuver', 'right', 'side', 'drill', 'albino', 'tell', 'stop', 'drill', 'verify', 'depth', 'drill', 'luis', 'lift', 'chuck', 'albino', 'pull', 'iron', 'verifies', 'everything', 'fine', 'communicates', 'restart', 'drilling', 'hole', 'moment', 'victim', 'without', 'apparent', 'reason', 'cross', 'left', 'arm', 'drill', 'caught', 'drill', 'work', 'clothes', 'causing', 'injury', 'describedemployee', 'passed', 'corner', 'front', 'door', 'seeing', 'virdro', 'slight', 'swelling', 'frontal', 'region', 'due', 'closing', 'glass', 'dooractivity', 'maintenance', 'scaller', 'breaker', 'arm', 'extension', 'cylinder', 'local', 'underground', 'mine', 'level', 'removal', 'cylinder', 'scaller', 'arm', 'releasing', 'fixing', 'pin', 'cylinder', 'came', 'bumped', 'tool', 'used', 'press', 'hand', 'tool', 'structure', 'equipment', 'hour', 'end', 'concentrate', 'truck', 'cleaning', 'driver', 'instructed', 'close', 'gate', 'moment', 'carlos', 'back', 'vehicle', 'reported', 'injury', 'left', 'hand', 'transferred', 'medical', 'center', 'attention', 'later', 'evacuation', 'clinic', 'mechanic', 'duty', 'section', 'antonio', 'observed', 'activity', 'withdrawal', 'check', 'pom', 'moment', 'impacted', 'pulp', 'line', 'discharge', 'stuck', 'causing', 'irritation', 'right', 'part', 'neck', 'ear', 'mechanic', 'referred', 'medical', 'center', 'evaluationmoments', 'collaborator', 'carried', 'inspection', 'conveyor', 'belt', 'tail', 'pulley', 'height', 'load', 'polymer', 'maslucan', 'collaborator', 'heard', 'noise', 'note', 'belt', 'moving', 'towards', 'tail', 'pulley', 'fragmentos', 'mineral', 'fragment', 'projected', 'towards', 'access', 'ramp', 'impacting', 'collaborator', 'evacuated', 'medical', 'postcircumstances', 'worker', 'walking', 'along', 'straight', 'line', 'level', 'step', 'rock', 'approximately', 'bending', 'right', 'ankle', 'caused', 'injury', 'described', 'event', 'occurred', 'worker', 'decided', 'report', 'accident', 'feel', 'pain', 'approximately', 'begin', 'feel', 'discomfort', 'walking', 'progressive', 'mild', 'pain', 'ankle', 'moment', 'communicates', 'eventupon', 'entering', 'building', 'maid', 'slipped', 'fell', 'behind', 'automatic', 'door', 'front', 'entry', 'mat', 'floor', 'wet', 'slipperyemployee', 'report', 'trying', 'unlock', 'cathodic', 'sheet', 'digger', 'realize', 'blade', 'pressed', 'cable', 'projected', 'hit', 'facelevel', 'guide', 'wire', 'chamber', 'preparation', 'activity', 'mix', 'shocrete', 'worker', 'performs', 'emptying', 'bag', 'cement', 'towards', 'bucket', 'complete', 'dosage', 'moment', 'dust', 'generated', 'cement', 'enters', 'lower', 'part', 'lens', 'left', 'eye', 'causing', 'irritationmr', 'emerson', 'moving', 'tray', 'climbing', 'staircase', 'give', 'access', 'former', 'dining', 'room', 'finding', 'last', 'step', 'slip', 'fall', 'floor', 'supporting', 'body', 'forward', 'suffering', 'blow', 'right', 'knee', 'floor', 'well', 'nose', 'metal', 'tray', 'carrying', 'causing', 'cut', 'nose', 'ematoma', 'kneecircumstances', 'worker', 'prepared', 'food', 'electric', 'pot', 'ensuring', 'lid', 'fall', 'head', 'causing', 'injury', 'describedcircumstances', 'worker', 'two', 'partner', 'placing', 'killer', 'bomb', 'basket', 'manitou', 'team', 'bomb', 'hit', 'index', 'finger', 'right', 'hand', 'basketapprox', 'hour', 'luis', 'maintenance', 'team', 'mobile', 'equipment', 'adjusted', 'bolt', 'front', 'loader', 'time', 'face', 'impacted', 'key', 'used', 'activity', 'producing', 'slight', 'cut', 'surface', 'face', 'transferred', 'medical', 'service', 'attended', 'registeredcircumstances', 'driver', 'plate', 'truck', 'impromec', 'went', 'garit', 'plant', 'chicrin', 'entering', 'internal', 'mine', 'area', 'santa', 'approx', 'old', 'dining', 'room', 'stop', 'vehicle', 'informs', 'copilot', 'longer', 'drive', 'turn', 'vehicle', 'trying', 'get', 'van', 'loses', 'balance', 'fall', 'seat', 'complaining', 'intense', 'pain', 'lumbar', 'area', 'citing', 'pain', 'due', 'overexertion', 'due', 'routine', 'activity', 'evacuation', 'residual', 'oil', 'solid', 'waste', 'cylinder', 'previously', 'performed', 'collaborator', 'time', 'event', 'used', 'corresponding', 'eppsemployee', 'performed', 'insertion', 'adjustment', 'joint', 'blind', 'flange', 'tubing', 'one', 'wedge', 'shifted', 'causing', 'movement', 'flange', 'causing', 'finger', 'left', 'hand', 'pressedconvoy', 'locomotive', 'operated', 'tito', 'located', 'hopper', 'positioning', 'car', 'hopper', 'assistant', 'observe', 'anything', 'ordinary', 'dry', 'load', 'presence', 'water', 'initiate', 'chute', 'hydraulic', 'module', 'hopper', 'switched', 'control', 'slightly', 'move', 'hopper', 'handle', 'untimely', 'flow', 'water', 'mud', 'splash', 'operator', 'generating', 'described', 'injury', 'addition', 'collaborator', 'meter', 'line', 'firemaster', 'additive', 'taken', 'afo', 'license', 'plate', 'towards', 'launching', 'team', 'collaborator', 'bonifacio', 'robot', 'assistant', 'moment', 'received', 'bucket', 'emptiness', 'operator', 'enoc', 'feel', 'drop', 'drop', 'additive', 'right', 'eye', 'feeling', 'burning', 'sensation', 'immediately', 'wash', 'affected', 'eye', 'team', 'eye', 'collaborator', 'evacuated', 'natclar', 'time', 'accident', 'employee', 'glass', 'using', 'correctly', 'driver', 'aeq', 'plate', 'dump', 'truck', 'ton', 'heading', 'loading', 'area', 'parking', 'proceeding', 'ore', 'loading', 'scoop', 'ydrs', 'moment', 'lift', 'first', 'scoop', 'towards', 'hopper', 'large', 'bank', 'fall', 'causing', 'tipper', 'shake', 'violently', 'operator', 'hit', 'gear', 'lever', 'communicate', 'supervisor', 'evacuated', 'medical', 'centerinjured', 'collaborator', 'time', 'making', 'hdpe', 'pipe', 'used', 'hydraulic', 'filling', 'released', 'causing', 'one', 'end', 'pipe', 'impact', 'lip', 'causing', 'injury', 'apparently', 'support', 'deconcentrates', 'release', 'little', 'pipe', 'action', 'generates', 'pipe', 'presented', 'rubber', 'victaulica', 'copla', 'released', 'generating', 'impact', 'previously', 'described', 'pipe', 'empty', 'without', 'hydraulic', 'loadcircumstance', 'ahk', 'license', 'plate', 'empresa', 'serf', 'supervision', 'cma', 'carried', 'field', 'inspection', 'upper', 'bank', 'unexpectedly', 'climbing', 'operational', 'access', 'positive', 'ramp', 'slide', 'excavated', 'area', 'approximately', 'meter', 'high', 'remaining', 'position', 'front', 'part', 'floor', 'occupant', 'vehicle', 'made', 'use', 'safety', 'belt', 'complete', 'eppssurface', 'comedor', 'worker', 'company', 'made', 'cut', 'lemon', 'time', 'imprisoned', 'knife', 'generating', 'movement', 'impacting', 'first', 'finger', 'left', 'hand', 'causing', 'slight', 'cutemployee', 'report', 'removing', 'zinc', 'sheet', 'cathode', 'take', 'easel', 'slipped', 'hand', 'fell', 'hit', 'left', 'footexecution', 'task', 'assembling', 'box', 'testimony', 'box', 'area', 'bonsucesso', 'around', 'orlando', 'research', 'driller', 'geosol', 'trying', 'fit', 'two', 'part', 'trestle', 'third', 'piece', 'fell', 'hand', 'piece', 'held', 'causing', 'small', 'trauma', 'left', 'thumb', 'employee', 'referred', 'sao', 'lucas', 'hospital', 'paracatu', 'ltda', 'attended', 'released', 'without', 'leaving', 'work', 'soontechnician', 'returning', 'activity', 'bite', 'stepped', 'loose', 'rock', 'sloping', 'region', 'released', 'unbalancing', 'employee', 'stepped', 'false', 'twisting', 'anklefield', 'activity', 'amg', 'project', 'target', 'sao', 'luiz', 'reconnaissance', 'team', 'boarding', 'car', 'parked', 'window', 'closed', 'entered', 'paulo', 'putting', 'seat', 'belt', 'inside', 'vehicle', 'pressed', 'wasp', 'shoulder', 'neck', 'causing', 'sting', 'believed', 'possibly', 'bee', 'nailed', 'clothes', 'car', 'properly', 'closedmaintenance', 'boltec', 'level', 'gts', 'rampa', 'xxx', 'mechanic', 'operator', 'equipment', 'performed', 'test', 'equipment', 'magazine', 'magazine', 'carousel', 'turned', 'operator', 'left', 'middle', 'finger', 'pressed', 'equipment', 'frameapproximately', 'approximately', 'lifting', 'kelly', 'towards', 'pulley', 'frame', 'align', 'assistant', 'marco', 'later', 'one', 'struck', 'hand', 'frame', 'generating', 'injurycollaborator', 'moved', 'infrastructure', 'office', 'julio', 'toilet', 'pin', 'right', 'shoe', 'hooked', 'bra', 'left', 'shoe', 'causing', 'take', 'step', 'fall', 'untimely', 'causing', 'injury', 'describedenvironmental', 'monitoring', 'activity', 'area', 'employee', 'surprised', 'swarming', 'swarm', 'weevil', 'exit', 'place', 'endured', 'suffering', 'two', 'sting', 'one', 'face', 'middle', 'finger', 'left', 'handemployee', 'performed', 'activity', 'stripping', 'cathode', 'pulling', 'cathode', 'sheet', 'hand', 'hit', 'side', 'another', 'cathode', 'causing', 'blunt', 'cut', 'finger', 'left', 'hand', 'assistant', 'cleaned', 'floor', 'module', 'central', 'camp', 'slipped', 'back', 'immediately', 'grabbed', 'laundry', 'table', 'avoid', 'falling', 'floor', 'suffering', 'described', 'injury']
In [59]:
print('Length of all the words:', len(tokens),'\n')
print('Length of unique tokens in the dataset:', len(np.unique(tokens)),'\n')
Length of all the words: 12607 

Length of unique tokens in the dataset: 3015 

Lemmatization: [For Reference]

Lemmatization is used in natural language processing (NLP), machine learning, and chatbots. It groups together the inflected forms of a word so they can be analyzed as a single item. The base form, orlemma, identifies the word. For example, the verb "to walk" may appear as "walk", "walked", "walks", or "walking". The base form, "walk", is called thelemma for the word.

Lemmatization is more accurate than stemming, but it's also more time consuming because it involves deriving the meaning of a word from something like a dictionary.

Lemmatization links similar meaning words as one word, making tools such as chatbots and search engine queries more effective and accurate. For example, search engines like Google make use of lemmatization so that they can provide better, more relevant results to their users.

Applying Lemmatization on Description and adding a new column.

In [60]:
data['NewDescription'] = data.apply(lambda x: " ".join(lemmatization(x.Description)), axis=1)
In [61]:
data.info()
<class 'pandas.core.frame.DataFrame'>
Index: 411 entries, 0 to 424
Data columns (total 13 columns):
 #   Column                    Non-Null Count  Dtype         
---  ------                    --------------  -----         
 0   Date                      411 non-null    datetime64[ns]
 1   Countries                 411 non-null    object        
 2   Local                     411 non-null    object        
 3   Industry Sector           411 non-null    object        
 4   Accident Level            411 non-null    int64         
 5   Potential Accident Level  411 non-null    int64         
 6   Gender                    411 non-null    object        
 7   Employee or Third Party   411 non-null    object        
 8   Critical Risk             411 non-null    object        
 9   Description               411 non-null    object        
 10  month                     411 non-null    int32         
 11  year                      411 non-null    int32         
 12  NewDescription            411 non-null    object        
dtypes: datetime64[ns](1), int32(2), int64(2), object(8)
memory usage: 57.9+ KB

Comparing Description & New Description post lemmatization

In [62]:
data['Description'][2]
Out[62]:
'substation milpo located level 170 collaborator excavation work pick hand tool hitting rock flat part beak bounces hitting steel tip safety shoe metatarsal area \u200b\u200bthe left foot collaborator causing injury'
In [63]:
data['NewDescription'][2]
Out[63]:
'substation milpo located level collaborator excavation work pick hand tool hitting rock flat part beak bounce hitting steel tip safety shoe metatarsal area left foot collaborator causing injury'

Observations: [Comparing Description before & after Lemmatization]

  1. In the above comparison, you can see that the word "bounces" is changed to "bounce" and special characters like "\u200b\u200bthe" removed from description.

N-grams

In [64]:
# Function to calculate ngrams
def extract_ngrams(data, num):
  # Taking ngrams on Description column text and taking the value counts of each of the tokens
  words_with_count  = nltk.FreqDist(nltk.ngrams(data, num)).most_common(30) # taking top 30 most common words

  # Creating the dataframe the words and thier counts
  words_with_count = pd.DataFrame(words_with_count, columns=['Words', 'Count'])

  # Removing the brackets and commans
  words_with_count.Words = [' '.join(i) for i in words_with_count.Words]

  # words_with_count.index = [' '.join(i) for i in words_with_count.Words]
  words_with_count.set_index('Words', inplace=True) # setting the Words as index

  # Returns the dataframe which contains unique tokens ordered by their counts 
  return words_with_count
In [65]:
for i in range(1,4):
    print("extracting",i,"-gram")
    print("---------------------")
    # n-grams
    n_grams = extract_ngrams(tokens, i)
    print(n_grams[0:10])
    n_grams.sort_values(by='Count').plot.barh(color = 'green', width = 0.8, figsize = (12,8));
    print(" ")
extracting 1 -gram
---------------------
          Count
Words          
causing     164
hand        155
left        153
right       153
operator    120
employee    108
time        102
moment       88
activity     87
worker       78
 
extracting 2 -gram
---------------------
                Count
Words                
left hand          60
time accident      54
right hand         48
causing injury     36
finger left        25
hand causing       15
fragment rock      15
injured person     15
finger right       14
medical center     14
 
extracting 3 -gram
---------------------
                          Count
Words                          
finger left hand             20
injury time accident         13
finger right hand            11
time accident employee        9
left hand causing             6
time accident worker          6
causing injury described      6
right hand causing            6
described time accident       6
worker wearing safety         5
 

Observations:

1-gram (Uni-gram)

  1. "Causing" is the most frequent word.
  2. There are several nouns like pipe, collaborator, time etc.
  3. Most accidents involved the hands of the persons involved.
  4. Moreover there are other words which depict some sort of action (verbs). For example hit, remove, fall move...etc

2-gram (Bi-gram)

  1. Most injuries involved hands as seen earlier.
  2. There are many phrases which is related to hands. For example hand causing, left hand, right hand, finger left, finger right, middle finger and ring finger.
  3. There are also some phrases which is related to other body parts. For example left foot and right side.

3-gram (Tri-gram)

  1. Like Unigram and Bigram, there are also many phrases which is related to hands or other body parts, but increasing the grams makes sense
  2. For example left/right hand finger, left hand causing, hit back right and wearing safety glove.. etc.
In [66]:
# Dividing the tokens with respect to Industry Sector from the description text
tokens_metals = lemmatization(' '.join(data[data['Industry Sector']=='Metals']['Description'].sum().split()))
tokens_mining = lemmatization(' '.join(data[data['Industry Sector']=='Mining']['Description'].sum().split()))
In [67]:
print('Total number of words in Metals category:', len(tokens_metals))
print('Total number of words in Mining category:',len(tokens_mining))
Total number of words in Metals category: 2765
Total number of words in Mining category: 7996
In [68]:
# Extracting unigrams on metals category
unigrams_metals = extract_ngrams(tokens_metals, 1).reset_index()

# Extracting unigrams on mining category
unigrams_mining = extract_ngrams(tokens_mining, 1).reset_index()

unigrams_metals.join(unigrams_mining, lsuffix='_Metals', rsuffix='_Mining')
Out[68]:
Words_Metals Count_Metals Words_Mining Count_Mining
0 left 46 hand 106
1 causing 43 causing 103
2 right 37 right 102
3 hand 36 operator 100
4 employee 33 left 93
5 hit 27 time 88
6 activity 27 worker 66
7 medical 24 assistant 65
8 report 23 equipment 63
9 area 21 accident 63
10 operator 20 moment 58
11 finger 20 mesh 58
12 moment 19 injury 57
13 hose 17 pipe 56
14 one 16 support 54
15 cleaning 15 work 53
16 sheet 15 collaborator 50
17 pump 15 rock 50
18 collaborator 14 floor 50
19 face 14 finger 48
20 cathode 14 level 45
21 acid 14 safety 45
22 pipe 13 hit 42
23 performed 13 height 39
24 fall 13 fall 38
25 cut 13 employee 38
26 center 13 one 37
27 remove 12 area 37
28 worker 12 meter 37
29 reaching 12 truck 34

Ngram with Gender column

In [69]:
# Dividing the tokens of male and female category from the description text
tokens_male = lemmatization(' '.join(data[data.Gender=='Male']['Description'].sum().split()))
tokens_female = lemmatization(' '.join(data[data.Gender=='Female']['Description'].sum().split()))
In [70]:
print('Total number of words in Male category:', len(tokens_male))
print('Total number of words in Female category:',len(tokens_female))
Total number of words in Male category: 12244
Total number of words in Female category: 364
In [71]:
# Extracting unigrams on male category
unigrams_male = extract_ngrams(tokens_male, 1).reset_index()

# Extracting unigrams on female category
unigrams_female = extract_ngrams(tokens_female, 1).reset_index()

# Joining both the dataframes
uni_male_female = unigrams_male.join(unigrams_female, lsuffix='_Male', rsuffix='_Female')

#------------------------------------------------------------------------------------------

# Extracting bigrams on male category
bigrams_male = extract_ngrams(tokens_male, 2).reset_index()

# Extracting unigrams on female category
bigrams_female = extract_ngrams(tokens_female, 2).reset_index()

# Joining both the dataframes
bi_male_female = bigrams_male.join(bigrams_female, lsuffix='_Male', rsuffix='_Female')
print(bi_male_female)
              Words_Male  Count_Male        Words_Female  Count_Female
0              left hand          58          pump house             2
1          time accident          54         nitric acid             2
2             right hand          48           left hand             2
3         causing injury          35        step causing             2
4            finger left          24   cleaning activity             2
5          fragment rock          15     due overheating             1
6         injured person          15     overheating bar             1
7           hand causing          14             bar row             1
8           finger right          14            row cell             1
9         medical center          14          cell spark             1
10           injury time          14      spark produced             1
11            right side          13  produced projected             1
12          support mesh          13   projected manages             1
13             left foot          11       manages reach             1
14             right leg          10         reach chief             1
15        wearing safety          10         chief guard             1
16            time event          10      guard corridor             1
17      injury described          10  corridor producing             1
18     accident employee          10     producing first             1
19             split set           9        first degree             1
20         middle finger           9         degree burn             1
21      described injury           9    burn neckinjured             1
22          height meter           9   neckinjured woman             1
23           ring finger           9     woman performed             1
24             left side           9  performed cleaning             1
25               one end           8   cleaning cleaning             1
26              made use           8       cleaning sink             1
27            upper part           8     sink collection             1
28              left leg           8     collection room             1
29  generating described           8        room pierced             1
In [72]:
fig, axes = plt.subplots(1,4, figsize=(30, 10))

sns.barplot(y = uni_male_female['Words_Male'], x = uni_male_female['Count_Male'], ax=axes[0], color='red');
axes[0].set_title('Unigram with Male');

sns.barplot(y = uni_male_female['Words_Female'], x = uni_male_female['Count_Female'], ax=axes[1], color='red');
axes[1].set_title('Unigram with Female');

sns.barplot(y = bi_male_female['Words_Male'], x = bi_male_female['Count_Male'], ax=axes[2], color='skyblue');
axes[2].set_title('Bigram with Male');

sns.barplot(y = bi_male_female['Words_Female'], x = bi_male_female['Count_Female'], ax=axes[3], color='skyblue');
axes[3].set_title('Bigram with Male');

Word Cloud

In [73]:
wordcloud = WordCloud(width = 800, height = 800, 
                background_color ='white', 
                stopwords = stop_words,
                min_font_size = 10).generate(' '.join(lemmatization(' '.join(data['Description'].sum().split()))))

plt.figure(figsize = (10, 15), facecolor = 'white', edgecolor='blue') 
plt.imshow(wordcloud) 
plt.axis("off") 
  
plt.show()

Observations:

  1. As same as the Ngram analysis above, there are many hand-related and movement-related words.
  2. Hand-related: left, right, hand, finger, and glove
  3. Movement-related: fall, hit, carry, lift and slip
In [74]:
blob = TextBlob(str(data['NewDescription']))
pos_data = pd.DataFrame(blob.tags, columns = ['word', 'pos'])
pos_data = pos_data.pos.value_counts()[:20]
pos_data.head()
Out[74]:
pos
NN     35
CD     11
JJ      8
VBG     5
RB      5
Name: count, dtype: int64
In [75]:
pos_data.sort_values().plot.barh(color = 'pink', width = 0.8, figsize = (12,8))
Out[75]:
<Axes: ylabel='pos'>

Some Examples:

NN - noun

NNP - proper noun

NNS - noun plural

CD - cardinal digit

DT - determiner

VB - verb

JJ - adjective

RB - adverb

VB - verb

VBD - verb past tense...etc

Step 4: Data preparation - Cleansed data in .xlsx or .csv file [ 5 points ]

In [110]:
# determining the name of the file
file_name = 'industrial_safety_data.xlsx'

# saving the excel
data.to_excel(file_name)
print('DataFrame is written to Excel File successfully.')
DataFrame is written to Excel File successfully.

Step 5: Design train and test basic machine learning classifiers [ 10 Points ]

Generating X & y using TfidfVectorizer()

In [76]:
# Load the data

# Convert `accident_level` to numerical using LabelEncoder
label_encoder = LabelEncoder()
data['Accident Level'] = label_encoder.fit_transform(data['Accident Level'])

# Vectorize the `des_new` column using TF-IDF
tfidf_vectorizer = TfidfVectorizer()
X = tfidf_vectorizer.fit_transform(data['NewDescription'])

# `y` is the `accident_level` column
y = data['Accident Level']

Splitting the data into train, temp, test & validation

In [77]:
# Split the data into training, validation, and test sets
X_train, X_temp, y_train, y_temp = train_test_split(X, y, test_size=0.3, random_state=42)
X_val, X_test, y_val, y_test = train_test_split(X_temp, y_temp, test_size=0.5, random_state=42)

Random Forest

In [78]:
# Train the Random Forest classifier
rf_clf = RandomForestClassifier(random_state=42)
rf_clf.fit(X_train, y_train)

# Make predictions
y_train_pred = rf_clf.predict(X_train)
y_val_pred = rf_clf.predict(X_val)
y_test_pred = rf_clf.predict(X_test)

Training Set

In [79]:
# Classification report and confusion matrix for the training set
print("Training Set - Classification Report:")
print(classification_report(y_train, y_train_pred))
print("\nTraining Set - Confusion Matrix:")
sns.heatmap(confusion_matrix(y_train, y_train_pred), annot=True, fmt='d', cmap='Blues')
plt.title('Confusion Matrix - Training Set')
plt.show()
Training Set - Classification Report:
              precision    recall  f1-score   support

           0       1.00      1.00      1.00       209
           1       1.00      1.00      1.00        29
           2       1.00      1.00      1.00        23
           3       1.00      1.00      1.00        22
           4       1.00      1.00      1.00         4

    accuracy                           1.00       287
   macro avg       1.00      1.00      1.00       287
weighted avg       1.00      1.00      1.00       287


Training Set - Confusion Matrix:

Validation Set

In [80]:
# Classification report and confusion matrix for the validation set
print("Validation Set - Classification Report:")
print(classification_report(y_val, y_val_pred))
print("\nValidation Set - Confusion Matrix:")
sns.heatmap(confusion_matrix(y_val, y_val_pred), annot=True, fmt='d', cmap='Blues')
plt.title('Confusion Matrix - Validation Set')
plt.show()
Validation Set - Classification Report:
              precision    recall  f1-score   support

           0       0.71      1.00      0.83        44
           1       0.00      0.00      0.00         6
           2       0.00      0.00      0.00         4
           3       0.00      0.00      0.00         5
           4       0.00      0.00      0.00         3

    accuracy                           0.71        62
   macro avg       0.14      0.20      0.17        62
weighted avg       0.50      0.71      0.59        62


Validation Set - Confusion Matrix:
/Users/anuragsharma/anaconda3/lib/python3.11/site-packages/sklearn/metrics/_classification.py:1344: UndefinedMetricWarning: Precision and F-score are ill-defined and being set to 0.0 in labels with no predicted samples. Use `zero_division` parameter to control this behavior.
  _warn_prf(average, modifier, msg_start, len(result))
/Users/anuragsharma/anaconda3/lib/python3.11/site-packages/sklearn/metrics/_classification.py:1344: UndefinedMetricWarning: Precision and F-score are ill-defined and being set to 0.0 in labels with no predicted samples. Use `zero_division` parameter to control this behavior.
  _warn_prf(average, modifier, msg_start, len(result))
/Users/anuragsharma/anaconda3/lib/python3.11/site-packages/sklearn/metrics/_classification.py:1344: UndefinedMetricWarning: Precision and F-score are ill-defined and being set to 0.0 in labels with no predicted samples. Use `zero_division` parameter to control this behavior.
  _warn_prf(average, modifier, msg_start, len(result))

Test Set

In [81]:
# Classification report and confusion matrix for the test set
print("Test Set - Classification Report:")
print(classification_report(y_test, y_test_pred))
print("\nTest Set - Confusion Matrix:")
sns.heatmap(confusion_matrix(y_test, y_test_pred), annot=True, fmt='d', cmap='Blues')
plt.title('Confusion Matrix - Test Set')
plt.show()
Test Set - Classification Report:
              precision    recall  f1-score   support

           0       0.81      1.00      0.89        50
           1       0.00      0.00      0.00         4
           2       0.00      0.00      0.00         4
           3       0.00      0.00      0.00         3
           4       0.00      0.00      0.00         1

    accuracy                           0.81        62
   macro avg       0.16      0.20      0.18        62
weighted avg       0.65      0.81      0.72        62


Test Set - Confusion Matrix:
/Users/anuragsharma/anaconda3/lib/python3.11/site-packages/sklearn/metrics/_classification.py:1344: UndefinedMetricWarning: Precision and F-score are ill-defined and being set to 0.0 in labels with no predicted samples. Use `zero_division` parameter to control this behavior.
  _warn_prf(average, modifier, msg_start, len(result))
/Users/anuragsharma/anaconda3/lib/python3.11/site-packages/sklearn/metrics/_classification.py:1344: UndefinedMetricWarning: Precision and F-score are ill-defined and being set to 0.0 in labels with no predicted samples. Use `zero_division` parameter to control this behavior.
  _warn_prf(average, modifier, msg_start, len(result))
/Users/anuragsharma/anaconda3/lib/python3.11/site-packages/sklearn/metrics/_classification.py:1344: UndefinedMetricWarning: Precision and F-score are ill-defined and being set to 0.0 in labels with no predicted samples. Use `zero_division` parameter to control this behavior.
  _warn_prf(average, modifier, msg_start, len(result))

Training Set: Performance: The model achieved a perfect accuracy (1.00) on the training set, with precision, recall, and F1-score all equal to 1.00 across all classes.

Interpretation: This perfect performance is a sign that the model may have overfit the training data. Overfitting occurs when a model learns not only the patterns in the data but also the noise, resulting in excellent performance on the training set but potentially poor generalization to new data.

Validation Set: Performance: The model performs poorly on the validation set, with an accuracy of 0.71. Precision, recall, and F1-scores are low across all classes except for class 0.

Interpretation: The low performance on the validation set, especially in classes 1 through 4, indicates that the model may be overfitting the training data and failing to generalize well to unseen data. The model heavily favors class 0, resulting in poor predictions for the other classes.

Test Set: Performance: Similar to the validation set, the model's accuracy on the test set is 0.81, which is decent. However, the performance across classes is uneven, with high performance for class 0 and very low performance for classes 1 through 4.

Interpretation: The uneven performance and lack of predictive power in classes 1 through 4 suggest the model is biased towards class 0 and struggles with the other classes. This could be due to an imbalanced dataset or overfitting.

Random Forest with Grid Search CV

In [82]:
# Define the Random Forest model
rf_clf = RandomForestClassifier(class_weight="balanced",random_state=42)

# Define the grid of hyperparameters to search
param_grid = {
    'n_estimators': [10,20,30,40],
    'max_depth': [None, 4, 10, 20],
    'min_samples_split': [2, 5, 10],
    'min_samples_leaf': [1, 2, 4],
    "max_features": ["sqrt", 0.5, 0.7],
}

scorer = make_scorer(recall_score, average='weighted')

# Set up the GridSearchCV
grid_search = GridSearchCV(rf_clf, param_grid, cv=5, scoring=scorer, n_jobs=-1)

# Perform the grid search
grid_search.fit(X_train, y_train)

# Retrieve the best model
best_model = grid_search.best_estimator_

# Evaluate the model on the validation set
y_val_pred = best_model.predict(X_val)
/Users/anuragsharma/anaconda3/lib/python3.11/site-packages/sklearn/model_selection/_split.py:700: UserWarning: The least populated class in y has only 4 members, which is less than n_splits=5.
  warnings.warn(
/Users/anuragsharma/anaconda3/lib/python3.11/site-packages/sklearn/metrics/_classification.py:1344: UndefinedMetricWarning: Recall is ill-defined and being set to 0.0 in labels with no true samples. Use `zero_division` parameter to control this behavior.
  _warn_prf(average, modifier, msg_start, len(result))
/Users/anuragsharma/anaconda3/lib/python3.11/site-packages/sklearn/metrics/_classification.py:1344: UndefinedMetricWarning: Recall is ill-defined and being set to 0.0 in labels with no true samples. Use `zero_division` parameter to control this behavior.
  _warn_prf(average, modifier, msg_start, len(result))
/Users/anuragsharma/anaconda3/lib/python3.11/site-packages/sklearn/metrics/_classification.py:1344: UndefinedMetricWarning: Recall is ill-defined and being set to 0.0 in labels with no true samples. Use `zero_division` parameter to control this behavior.
  _warn_prf(average, modifier, msg_start, len(result))
/Users/anuragsharma/anaconda3/lib/python3.11/site-packages/sklearn/metrics/_classification.py:1344: UndefinedMetricWarning: Recall is ill-defined and being set to 0.0 in labels with no true samples. Use `zero_division` parameter to control this behavior.
  _warn_prf(average, modifier, msg_start, len(result))
/Users/anuragsharma/anaconda3/lib/python3.11/site-packages/sklearn/metrics/_classification.py:1344: UndefinedMetricWarning: Recall is ill-defined and being set to 0.0 in labels with no true samples. Use `zero_division` parameter to control this behavior.
  _warn_prf(average, modifier, msg_start, len(result))
/Users/anuragsharma/anaconda3/lib/python3.11/site-packages/sklearn/metrics/_classification.py:1344: UndefinedMetricWarning: Recall is ill-defined and being set to 0.0 in labels with no true samples. Use `zero_division` parameter to control this behavior.
  _warn_prf(average, modifier, msg_start, len(result))
/Users/anuragsharma/anaconda3/lib/python3.11/site-packages/sklearn/metrics/_classification.py:1344: UndefinedMetricWarning: Recall is ill-defined and being set to 0.0 in labels with no true samples. Use `zero_division` parameter to control this behavior.
  _warn_prf(average, modifier, msg_start, len(result))
/Users/anuragsharma/anaconda3/lib/python3.11/site-packages/sklearn/metrics/_classification.py:1344: UndefinedMetricWarning: Recall is ill-defined and being set to 0.0 in labels with no true samples. Use `zero_division` parameter to control this behavior.
  _warn_prf(average, modifier, msg_start, len(result))
/Users/anuragsharma/anaconda3/lib/python3.11/site-packages/sklearn/metrics/_classification.py:1344: UndefinedMetricWarning: Recall is ill-defined and being set to 0.0 in labels with no true samples. Use `zero_division` parameter to control this behavior.
  _warn_prf(average, modifier, msg_start, len(result))
/Users/anuragsharma/anaconda3/lib/python3.11/site-packages/sklearn/metrics/_classification.py:1344: UndefinedMetricWarning: Recall is ill-defined and being set to 0.0 in labels with no true samples. Use `zero_division` parameter to control this behavior.
  _warn_prf(average, modifier, msg_start, len(result))
/Users/anuragsharma/anaconda3/lib/python3.11/site-packages/sklearn/metrics/_classification.py:1344: UndefinedMetricWarning: Recall is ill-defined and being set to 0.0 in labels with no true samples. Use `zero_division` parameter to control this behavior.
  _warn_prf(average, modifier, msg_start, len(result))
/Users/anuragsharma/anaconda3/lib/python3.11/site-packages/sklearn/metrics/_classification.py:1344: UndefinedMetricWarning: Recall is ill-defined and being set to 0.0 in labels with no true samples. Use `zero_division` parameter to control this behavior.
  _warn_prf(average, modifier, msg_start, len(result))
/Users/anuragsharma/anaconda3/lib/python3.11/site-packages/sklearn/metrics/_classification.py:1344: UndefinedMetricWarning: Recall is ill-defined and being set to 0.0 in labels with no true samples. Use `zero_division` parameter to control this behavior.
  _warn_prf(average, modifier, msg_start, len(result))
/Users/anuragsharma/anaconda3/lib/python3.11/site-packages/sklearn/metrics/_classification.py:1344: UndefinedMetricWarning: Recall is ill-defined and being set to 0.0 in labels with no true samples. Use `zero_division` parameter to control this behavior.
  _warn_prf(average, modifier, msg_start, len(result))
/Users/anuragsharma/anaconda3/lib/python3.11/site-packages/sklearn/metrics/_classification.py:1344: UndefinedMetricWarning: Recall is ill-defined and being set to 0.0 in labels with no true samples. Use `zero_division` parameter to control this behavior.
  _warn_prf(average, modifier, msg_start, len(result))
/Users/anuragsharma/anaconda3/lib/python3.11/site-packages/sklearn/metrics/_classification.py:1344: UndefinedMetricWarning: Recall is ill-defined and being set to 0.0 in labels with no true samples. Use `zero_division` parameter to control this behavior.
  _warn_prf(average, modifier, msg_start, len(result))
/Users/anuragsharma/anaconda3/lib/python3.11/site-packages/sklearn/metrics/_classification.py:1344: UndefinedMetricWarning: Recall is ill-defined and being set to 0.0 in labels with no true samples. Use `zero_division` parameter to control this behavior.
  _warn_prf(average, modifier, msg_start, len(result))
/Users/anuragsharma/anaconda3/lib/python3.11/site-packages/sklearn/metrics/_classification.py:1344: UndefinedMetricWarning: Recall is ill-defined and being set to 0.0 in labels with no true samples. Use `zero_division` parameter to control this behavior.
  _warn_prf(average, modifier, msg_start, len(result))
/Users/anuragsharma/anaconda3/lib/python3.11/site-packages/sklearn/metrics/_classification.py:1344: UndefinedMetricWarning: Recall is ill-defined and being set to 0.0 in labels with no true samples. Use `zero_division` parameter to control this behavior.
  _warn_prf(average, modifier, msg_start, len(result))
/Users/anuragsharma/anaconda3/lib/python3.11/site-packages/sklearn/metrics/_classification.py:1344: UndefinedMetricWarning: Recall is ill-defined and being set to 0.0 in labels with no true samples. Use `zero_division` parameter to control this behavior.
  _warn_prf(average, modifier, msg_start, len(result))
/Users/anuragsharma/anaconda3/lib/python3.11/site-packages/sklearn/metrics/_classification.py:1344: UndefinedMetricWarning: Recall is ill-defined and being set to 0.0 in labels with no true samples. Use `zero_division` parameter to control this behavior.
  _warn_prf(average, modifier, msg_start, len(result))
/Users/anuragsharma/anaconda3/lib/python3.11/site-packages/sklearn/metrics/_classification.py:1344: UndefinedMetricWarning: Recall is ill-defined and being set to 0.0 in labels with no true samples. Use `zero_division` parameter to control this behavior.
  _warn_prf(average, modifier, msg_start, len(result))
/Users/anuragsharma/anaconda3/lib/python3.11/site-packages/sklearn/metrics/_classification.py:1344: UndefinedMetricWarning: Recall is ill-defined and being set to 0.0 in labels with no true samples. Use `zero_division` parameter to control this behavior.
  _warn_prf(average, modifier, msg_start, len(result))
/Users/anuragsharma/anaconda3/lib/python3.11/site-packages/sklearn/metrics/_classification.py:1344: UndefinedMetricWarning: Recall is ill-defined and being set to 0.0 in labels with no true samples. Use `zero_division` parameter to control this behavior.
  _warn_prf(average, modifier, msg_start, len(result))
/Users/anuragsharma/anaconda3/lib/python3.11/site-packages/sklearn/metrics/_classification.py:1344: UndefinedMetricWarning: Recall is ill-defined and being set to 0.0 in labels with no true samples. Use `zero_division` parameter to control this behavior.
  _warn_prf(average, modifier, msg_start, len(result))
/Users/anuragsharma/anaconda3/lib/python3.11/site-packages/sklearn/metrics/_classification.py:1344: UndefinedMetricWarning: Recall is ill-defined and being set to 0.0 in labels with no true samples. Use `zero_division` parameter to control this behavior.
  _warn_prf(average, modifier, msg_start, len(result))
/Users/anuragsharma/anaconda3/lib/python3.11/site-packages/sklearn/metrics/_classification.py:1344: UndefinedMetricWarning: Recall is ill-defined and being set to 0.0 in labels with no true samples. Use `zero_division` parameter to control this behavior.
  _warn_prf(average, modifier, msg_start, len(result))
/Users/anuragsharma/anaconda3/lib/python3.11/site-packages/sklearn/metrics/_classification.py:1344: UndefinedMetricWarning: Recall is ill-defined and being set to 0.0 in labels with no true samples. Use `zero_division` parameter to control this behavior.
  _warn_prf(average, modifier, msg_start, len(result))
/Users/anuragsharma/anaconda3/lib/python3.11/site-packages/sklearn/metrics/_classification.py:1344: UndefinedMetricWarning: Recall is ill-defined and being set to 0.0 in labels with no true samples. Use `zero_division` parameter to control this behavior.
  _warn_prf(average, modifier, msg_start, len(result))
/Users/anuragsharma/anaconda3/lib/python3.11/site-packages/sklearn/metrics/_classification.py:1344: UndefinedMetricWarning: Recall is ill-defined and being set to 0.0 in labels with no true samples. Use `zero_division` parameter to control this behavior.
  _warn_prf(average, modifier, msg_start, len(result))
/Users/anuragsharma/anaconda3/lib/python3.11/site-packages/sklearn/metrics/_classification.py:1344: UndefinedMetricWarning: Recall is ill-defined and being set to 0.0 in labels with no true samples. Use `zero_division` parameter to control this behavior.
  _warn_prf(average, modifier, msg_start, len(result))
/Users/anuragsharma/anaconda3/lib/python3.11/site-packages/sklearn/metrics/_classification.py:1344: UndefinedMetricWarning: Recall is ill-defined and being set to 0.0 in labels with no true samples. Use `zero_division` parameter to control this behavior.
  _warn_prf(average, modifier, msg_start, len(result))
/Users/anuragsharma/anaconda3/lib/python3.11/site-packages/sklearn/metrics/_classification.py:1344: UndefinedMetricWarning: Recall is ill-defined and being set to 0.0 in labels with no true samples. Use `zero_division` parameter to control this behavior.
  _warn_prf(average, modifier, msg_start, len(result))
/Users/anuragsharma/anaconda3/lib/python3.11/site-packages/sklearn/metrics/_classification.py:1344: UndefinedMetricWarning: Recall is ill-defined and being set to 0.0 in labels with no true samples. Use `zero_division` parameter to control this behavior.
  _warn_prf(average, modifier, msg_start, len(result))
/Users/anuragsharma/anaconda3/lib/python3.11/site-packages/sklearn/metrics/_classification.py:1344: UndefinedMetricWarning: Recall is ill-defined and being set to 0.0 in labels with no true samples. Use `zero_division` parameter to control this behavior.
  _warn_prf(average, modifier, msg_start, len(result))
/Users/anuragsharma/anaconda3/lib/python3.11/site-packages/sklearn/metrics/_classification.py:1344: UndefinedMetricWarning: Recall is ill-defined and being set to 0.0 in labels with no true samples. Use `zero_division` parameter to control this behavior.
  _warn_prf(average, modifier, msg_start, len(result))
/Users/anuragsharma/anaconda3/lib/python3.11/site-packages/sklearn/metrics/_classification.py:1344: UndefinedMetricWarning: Recall is ill-defined and being set to 0.0 in labels with no true samples. Use `zero_division` parameter to control this behavior.
  _warn_prf(average, modifier, msg_start, len(result))
/Users/anuragsharma/anaconda3/lib/python3.11/site-packages/sklearn/metrics/_classification.py:1344: UndefinedMetricWarning: Recall is ill-defined and being set to 0.0 in labels with no true samples. Use `zero_division` parameter to control this behavior.
  _warn_prf(average, modifier, msg_start, len(result))
/Users/anuragsharma/anaconda3/lib/python3.11/site-packages/sklearn/metrics/_classification.py:1344: UndefinedMetricWarning: Recall is ill-defined and being set to 0.0 in labels with no true samples. Use `zero_division` parameter to control this behavior.
  _warn_prf(average, modifier, msg_start, len(result))
/Users/anuragsharma/anaconda3/lib/python3.11/site-packages/sklearn/metrics/_classification.py:1344: UndefinedMetricWarning: Recall is ill-defined and being set to 0.0 in labels with no true samples. Use `zero_division` parameter to control this behavior.
  _warn_prf(average, modifier, msg_start, len(result))
/Users/anuragsharma/anaconda3/lib/python3.11/site-packages/sklearn/metrics/_classification.py:1344: UndefinedMetricWarning: Recall is ill-defined and being set to 0.0 in labels with no true samples. Use `zero_division` parameter to control this behavior.
  _warn_prf(average, modifier, msg_start, len(result))
/Users/anuragsharma/anaconda3/lib/python3.11/site-packages/sklearn/metrics/_classification.py:1344: UndefinedMetricWarning: Recall is ill-defined and being set to 0.0 in labels with no true samples. Use `zero_division` parameter to control this behavior.
  _warn_prf(average, modifier, msg_start, len(result))
/Users/anuragsharma/anaconda3/lib/python3.11/site-packages/sklearn/metrics/_classification.py:1344: UndefinedMetricWarning: Recall is ill-defined and being set to 0.0 in labels with no true samples. Use `zero_division` parameter to control this behavior.
  _warn_prf(average, modifier, msg_start, len(result))
/Users/anuragsharma/anaconda3/lib/python3.11/site-packages/sklearn/metrics/_classification.py:1344: UndefinedMetricWarning: Recall is ill-defined and being set to 0.0 in labels with no true samples. Use `zero_division` parameter to control this behavior.
  _warn_prf(average, modifier, msg_start, len(result))
/Users/anuragsharma/anaconda3/lib/python3.11/site-packages/sklearn/metrics/_classification.py:1344: UndefinedMetricWarning: Recall is ill-defined and being set to 0.0 in labels with no true samples. Use `zero_division` parameter to control this behavior.
  _warn_prf(average, modifier, msg_start, len(result))
/Users/anuragsharma/anaconda3/lib/python3.11/site-packages/sklearn/metrics/_classification.py:1344: UndefinedMetricWarning: Recall is ill-defined and being set to 0.0 in labels with no true samples. Use `zero_division` parameter to control this behavior.
  _warn_prf(average, modifier, msg_start, len(result))
/Users/anuragsharma/anaconda3/lib/python3.11/site-packages/sklearn/metrics/_classification.py:1344: UndefinedMetricWarning: Recall is ill-defined and being set to 0.0 in labels with no true samples. Use `zero_division` parameter to control this behavior.
  _warn_prf(average, modifier, msg_start, len(result))
/Users/anuragsharma/anaconda3/lib/python3.11/site-packages/sklearn/metrics/_classification.py:1344: UndefinedMetricWarning: Recall is ill-defined and being set to 0.0 in labels with no true samples. Use `zero_division` parameter to control this behavior.
  _warn_prf(average, modifier, msg_start, len(result))
/Users/anuragsharma/anaconda3/lib/python3.11/site-packages/sklearn/metrics/_classification.py:1344: UndefinedMetricWarning: Recall is ill-defined and being set to 0.0 in labels with no true samples. Use `zero_division` parameter to control this behavior.
  _warn_prf(average, modifier, msg_start, len(result))
/Users/anuragsharma/anaconda3/lib/python3.11/site-packages/sklearn/metrics/_classification.py:1344: UndefinedMetricWarning: Recall is ill-defined and being set to 0.0 in labels with no true samples. Use `zero_division` parameter to control this behavior.
  _warn_prf(average, modifier, msg_start, len(result))
/Users/anuragsharma/anaconda3/lib/python3.11/site-packages/sklearn/metrics/_classification.py:1344: UndefinedMetricWarning: Recall is ill-defined and being set to 0.0 in labels with no true samples. Use `zero_division` parameter to control this behavior.
  _warn_prf(average, modifier, msg_start, len(result))
/Users/anuragsharma/anaconda3/lib/python3.11/site-packages/sklearn/metrics/_classification.py:1344: UndefinedMetricWarning: Recall is ill-defined and being set to 0.0 in labels with no true samples. Use `zero_division` parameter to control this behavior.
  _warn_prf(average, modifier, msg_start, len(result))
/Users/anuragsharma/anaconda3/lib/python3.11/site-packages/sklearn/metrics/_classification.py:1344: UndefinedMetricWarning: Recall is ill-defined and being set to 0.0 in labels with no true samples. Use `zero_division` parameter to control this behavior.
  _warn_prf(average, modifier, msg_start, len(result))
/Users/anuragsharma/anaconda3/lib/python3.11/site-packages/sklearn/metrics/_classification.py:1344: UndefinedMetricWarning: Recall is ill-defined and being set to 0.0 in labels with no true samples. Use `zero_division` parameter to control this behavior.
  _warn_prf(average, modifier, msg_start, len(result))

Validation Set

In [83]:
# Print the classification report for the validation set
print("Validation Set - Classification Report:")
print(classification_report(y_val, y_val_pred))

# Plot the confusion matrix for the validation set
print("\nValidation Set - Confusion Matrix:")
conf_matrix_val = confusion_matrix(y_val, y_val_pred)
sns.heatmap(conf_matrix_val, annot=True, fmt='d', cmap='Blues')
plt.title('Confusion Matrix - Validation Set')
plt.show()

# Retrieve the best hyperparameters
print("Best hyperparameters found by GridSearchCV:")
print(grid_search.best_params_)
/Users/anuragsharma/anaconda3/lib/python3.11/site-packages/sklearn/metrics/_classification.py:1344: UndefinedMetricWarning: Precision and F-score are ill-defined and being set to 0.0 in labels with no predicted samples. Use `zero_division` parameter to control this behavior.
  _warn_prf(average, modifier, msg_start, len(result))
/Users/anuragsharma/anaconda3/lib/python3.11/site-packages/sklearn/metrics/_classification.py:1344: UndefinedMetricWarning: Precision and F-score are ill-defined and being set to 0.0 in labels with no predicted samples. Use `zero_division` parameter to control this behavior.
  _warn_prf(average, modifier, msg_start, len(result))
/Users/anuragsharma/anaconda3/lib/python3.11/site-packages/sklearn/metrics/_classification.py:1344: UndefinedMetricWarning: Precision and F-score are ill-defined and being set to 0.0 in labels with no predicted samples. Use `zero_division` parameter to control this behavior.
  _warn_prf(average, modifier, msg_start, len(result))
Validation Set - Classification Report:
              precision    recall  f1-score   support

           0       0.72      1.00      0.84        44
           1       0.00      0.00      0.00         6
           2       0.00      0.00      0.00         4
           3       0.00      0.00      0.00         5
           4       0.00      0.00      0.00         3

    accuracy                           0.71        62
   macro avg       0.14      0.20      0.17        62
weighted avg       0.51      0.71      0.59        62


Validation Set - Confusion Matrix:
Best hyperparameters found by GridSearchCV:
{'max_depth': None, 'max_features': 'sqrt', 'min_samples_leaf': 2, 'min_samples_split': 5, 'n_estimators': 30}

Observations:

  1. Best hyperparameters found by GridSearchCV are as follows:

max_depth=None,

max_features=sqrt,

min_samples_leaf=1,

min_samples_split=2,

n_estimators=10

XGBoost

In [87]:
# Define the Gradient Boosting model
gb_clf = GradientBoostingClassifier(random_state=42)

# Define the grid of hyperparameters to search
# param_grid = {
#     'n_estimators': [50, 100, 200, 300],
#     'learning_rate': [0.01, 0.05, 0.1],
#     'max_depth': [3, 5, 7],
#     'min_samples_split': [2, 4, 6],
#     'min_samples_leaf': [1, 2, 4]
# }

param_grid = {
    'n_estimators': [50, 100],
    'learning_rate': [0.1],
    'max_depth': [3, 5],
    'min_samples_split': [2, 4],
    'min_samples_leaf': [1, 2]
}

# Set up the GridSearchCV
grid_search = GridSearchCV(gb_clf, param_grid, cv=5, scoring='accuracy', n_jobs=-1)

# Perform the grid search
grid_search.fit(X_train, y_train)

# Retrieve the best model
best_model = grid_search.best_estimator_

# Evaluate the model on the validation set
y_val_pred = best_model.predict(X_val)
/Users/anuragsharma/anaconda3/lib/python3.11/site-packages/sklearn/model_selection/_split.py:700: UserWarning: The least populated class in y has only 4 members, which is less than n_splits=5.
  warnings.warn(

Test Set

In [88]:
# Evaluate the model on the test set
y_test_pred = best_model.predict(X_test)
print("\nTest Set - Classification Report:")
print(classification_report(y_test, y_test_pred))

print("\nTest Set - Confusion Matrix:")
conf_matrix_test = confusion_matrix(y_test, y_test_pred)
sns.heatmap(conf_matrix_test, annot=True, fmt='d', cmap='Blues')
plt.title('Confusion Matrix - Test Set')
plt.show()
Test Set - Classification Report:
              precision    recall  f1-score   support

           0       0.81      0.94      0.87        50
           1       0.00      0.00      0.00         4
           2       0.00      0.00      0.00         4
           3       0.00      0.00      0.00         3
           4       0.00      0.00      0.00         1

    accuracy                           0.76        62
   macro avg       0.16      0.19      0.17        62
weighted avg       0.65      0.76      0.70        62


Test Set - Confusion Matrix:
/Users/anuragsharma/anaconda3/lib/python3.11/site-packages/sklearn/metrics/_classification.py:1344: UndefinedMetricWarning: Precision and F-score are ill-defined and being set to 0.0 in labels with no predicted samples. Use `zero_division` parameter to control this behavior.
  _warn_prf(average, modifier, msg_start, len(result))
/Users/anuragsharma/anaconda3/lib/python3.11/site-packages/sklearn/metrics/_classification.py:1344: UndefinedMetricWarning: Precision and F-score are ill-defined and being set to 0.0 in labels with no predicted samples. Use `zero_division` parameter to control this behavior.
  _warn_prf(average, modifier, msg_start, len(result))
/Users/anuragsharma/anaconda3/lib/python3.11/site-packages/sklearn/metrics/_classification.py:1344: UndefinedMetricWarning: Precision and F-score are ill-defined and being set to 0.0 in labels with no predicted samples. Use `zero_division` parameter to control this behavior.
  _warn_prf(average, modifier, msg_start, len(result))

Training Set

In [89]:
# Evaluate the model on the training set
y_train_pred = best_model.predict(X_train)
print("Training Set - Classification Report:")
print(classification_report(y_train, y_train_pred))

print("\nTraining Set - Confusion Matrix:")
conf_matrix_train = confusion_matrix(y_train, y_train_pred)
sns.heatmap(conf_matrix_train, annot=True, fmt='d', cmap='Blues')
plt.title('Confusion Matrix - Training Set')
plt.show()
Training Set - Classification Report:
              precision    recall  f1-score   support

           0       1.00      1.00      1.00       209
           1       1.00      1.00      1.00        29
           2       1.00      1.00      1.00        23
           3       1.00      1.00      1.00        22
           4       1.00      1.00      1.00         4

    accuracy                           1.00       287
   macro avg       1.00      1.00      1.00       287
weighted avg       1.00      1.00      1.00       287


Training Set - Confusion Matrix:

Validation Set

In [90]:
# Evaluate the model on the validation set
y_val_pred = best_model.predict(X_val)
print("\nValidation Set - Classification Report:")
print(classification_report(y_val, y_val_pred))

print("\nValidation Set - Confusion Matrix:")
conf_matrix_val = confusion_matrix(y_val, y_val_pred)
sns.heatmap(conf_matrix_val, annot=True, fmt='d', cmap='Blues')
plt.title('Confusion Matrix - Validation Set')
plt.show()
Validation Set - Classification Report:
              precision    recall  f1-score   support

           0       0.71      0.95      0.82        44
           1       0.00      0.00      0.00         6
           2       0.00      0.00      0.00         4
           3       0.00      0.00      0.00         5
           4       0.00      0.00      0.00         3

    accuracy                           0.68        62
   macro avg       0.14      0.19      0.16        62
weighted avg       0.51      0.68      0.58        62


Validation Set - Confusion Matrix:
/Users/anuragsharma/anaconda3/lib/python3.11/site-packages/sklearn/metrics/_classification.py:1344: UndefinedMetricWarning: Precision and F-score are ill-defined and being set to 0.0 in labels with no predicted samples. Use `zero_division` parameter to control this behavior.
  _warn_prf(average, modifier, msg_start, len(result))
/Users/anuragsharma/anaconda3/lib/python3.11/site-packages/sklearn/metrics/_classification.py:1344: UndefinedMetricWarning: Precision and F-score are ill-defined and being set to 0.0 in labels with no predicted samples. Use `zero_division` parameter to control this behavior.
  _warn_prf(average, modifier, msg_start, len(result))
/Users/anuragsharma/anaconda3/lib/python3.11/site-packages/sklearn/metrics/_classification.py:1344: UndefinedMetricWarning: Precision and F-score are ill-defined and being set to 0.0 in labels with no predicted samples. Use `zero_division` parameter to control this behavior.
  _warn_prf(average, modifier, msg_start, len(result))
In [91]:
# Retrieve the best hyperparameters
print("Best hyperparameters found by GridSearchCV:")
print(grid_search.best_params_)
Best hyperparameters found by GridSearchCV:
{'learning_rate': 0.1, 'max_depth': 5, 'min_samples_leaf': 1, 'min_samples_split': 2, 'n_estimators': 50}

SVM

In [92]:
# Define the SVM model
svm_clf = SVC(random_state=42)

# Define the grid of hyperparameters to search
param_grid = {
    'C': [0.1, 1, 10, 100],
    'kernel': ['linear', 'rbf', 'poly'],
    'gamma': ['scale', 'auto'] if 'rbf' in ['linear', 'rbf', 'poly'] else [1],
    'degree': [2, 3] if 'poly' in ['linear', 'rbf', 'poly'] else [3]
}

# Set up the GridSearchCV
grid_search = GridSearchCV(svm_clf, param_grid, cv=5, scoring='accuracy', n_jobs=-1)

# Perform the grid search
grid_search.fit(X_train, y_train)

# Retrieve the best model
best_model = grid_search.best_estimator_
/Users/anuragsharma/anaconda3/lib/python3.11/site-packages/sklearn/model_selection/_split.py:700: UserWarning: The least populated class in y has only 4 members, which is less than n_splits=5.
  warnings.warn(

Test Set

In [93]:
# Evaluate the model on the test set
y_test_pred = best_model.predict(X_test)
print("\nTest Set - Classification Report:")
print(classification_report(y_test, y_test_pred))

print("\nTest Set - Confusion Matrix:")
conf_matrix_test = confusion_matrix(y_test, y_test_pred)
sns.heatmap(conf_matrix_test, annot=True, fmt='d', cmap='Blues')
plt.title('Confusion Matrix - Test Set')
plt.show()

# Retrieve the best hyperparameters
print("Best hyperparameters found by GridSearchCV:")
print(grid_search.best_params_)
Test Set - Classification Report:
              precision    recall  f1-score   support

           0       0.81      1.00      0.89        50
           1       0.00      0.00      0.00         4
           2       0.00      0.00      0.00         4
           3       0.00      0.00      0.00         3
           4       0.00      0.00      0.00         1

    accuracy                           0.81        62
   macro avg       0.16      0.20      0.18        62
weighted avg       0.65      0.81      0.72        62


Test Set - Confusion Matrix:
/Users/anuragsharma/anaconda3/lib/python3.11/site-packages/sklearn/metrics/_classification.py:1344: UndefinedMetricWarning: Precision and F-score are ill-defined and being set to 0.0 in labels with no predicted samples. Use `zero_division` parameter to control this behavior.
  _warn_prf(average, modifier, msg_start, len(result))
/Users/anuragsharma/anaconda3/lib/python3.11/site-packages/sklearn/metrics/_classification.py:1344: UndefinedMetricWarning: Precision and F-score are ill-defined and being set to 0.0 in labels with no predicted samples. Use `zero_division` parameter to control this behavior.
  _warn_prf(average, modifier, msg_start, len(result))
/Users/anuragsharma/anaconda3/lib/python3.11/site-packages/sklearn/metrics/_classification.py:1344: UndefinedMetricWarning: Precision and F-score are ill-defined and being set to 0.0 in labels with no predicted samples. Use `zero_division` parameter to control this behavior.
  _warn_prf(average, modifier, msg_start, len(result))
Best hyperparameters found by GridSearchCV:
{'C': 0.1, 'degree': 2, 'gamma': 'scale', 'kernel': 'linear'}

Training Set

In [94]:
# Evaluate the model on the training set
y_train_pred = best_model.predict(X_train)
print("Training Set - Classification Report:")
print(classification_report(y_train, y_train_pred))

print("\nTraining Set - Confusion Matrix:")
conf_matrix_train = confusion_matrix(y_train, y_train_pred)
sns.heatmap(conf_matrix_train, annot=True, fmt='d', cmap='Blues')
plt.title('Confusion Matrix - Training Set')
plt.show()
Training Set - Classification Report:
              precision    recall  f1-score   support

           0       0.73      1.00      0.84       209
           1       0.00      0.00      0.00        29
           2       0.00      0.00      0.00        23
           3       0.00      0.00      0.00        22
           4       0.00      0.00      0.00         4

    accuracy                           0.73       287
   macro avg       0.15      0.20      0.17       287
weighted avg       0.53      0.73      0.61       287


Training Set - Confusion Matrix:
/Users/anuragsharma/anaconda3/lib/python3.11/site-packages/sklearn/metrics/_classification.py:1344: UndefinedMetricWarning: Precision and F-score are ill-defined and being set to 0.0 in labels with no predicted samples. Use `zero_division` parameter to control this behavior.
  _warn_prf(average, modifier, msg_start, len(result))
/Users/anuragsharma/anaconda3/lib/python3.11/site-packages/sklearn/metrics/_classification.py:1344: UndefinedMetricWarning: Precision and F-score are ill-defined and being set to 0.0 in labels with no predicted samples. Use `zero_division` parameter to control this behavior.
  _warn_prf(average, modifier, msg_start, len(result))
/Users/anuragsharma/anaconda3/lib/python3.11/site-packages/sklearn/metrics/_classification.py:1344: UndefinedMetricWarning: Precision and F-score are ill-defined and being set to 0.0 in labels with no predicted samples. Use `zero_division` parameter to control this behavior.
  _warn_prf(average, modifier, msg_start, len(result))

Validation Set

In [95]:
# Evaluate the model on the validation set
y_val_pred = best_model.predict(X_val)
print("\nValidation Set - Classification Report:")
print(classification_report(y_val, y_val_pred))

print("\nValidation Set - Confusion Matrix:")
conf_matrix_val = confusion_matrix(y_val, y_val_pred)
sns.heatmap(conf_matrix_val, annot=True, fmt='d', cmap='Blues')
plt.title('Confusion Matrix - Validation Set')
plt.show()
Validation Set - Classification Report:
              precision    recall  f1-score   support

           0       0.71      1.00      0.83        44
           1       0.00      0.00      0.00         6
           2       0.00      0.00      0.00         4
           3       0.00      0.00      0.00         5
           4       0.00      0.00      0.00         3

    accuracy                           0.71        62
   macro avg       0.14      0.20      0.17        62
weighted avg       0.50      0.71      0.59        62


Validation Set - Confusion Matrix:
/Users/anuragsharma/anaconda3/lib/python3.11/site-packages/sklearn/metrics/_classification.py:1344: UndefinedMetricWarning: Precision and F-score are ill-defined and being set to 0.0 in labels with no predicted samples. Use `zero_division` parameter to control this behavior.
  _warn_prf(average, modifier, msg_start, len(result))
/Users/anuragsharma/anaconda3/lib/python3.11/site-packages/sklearn/metrics/_classification.py:1344: UndefinedMetricWarning: Precision and F-score are ill-defined and being set to 0.0 in labels with no predicted samples. Use `zero_division` parameter to control this behavior.
  _warn_prf(average, modifier, msg_start, len(result))
/Users/anuragsharma/anaconda3/lib/python3.11/site-packages/sklearn/metrics/_classification.py:1344: UndefinedMetricWarning: Precision and F-score are ill-defined and being set to 0.0 in labels with no predicted samples. Use `zero_division` parameter to control this behavior.
  _warn_prf(average, modifier, msg_start, len(result))

SMOTE ON RANDOM FOREST

In [96]:
# Initialize SMOTE with k_neighbors set to 1
smote = SMOTE(random_state=42, k_neighbors=2)

# Apply SMOTE to the training data
X_train_balanced, y_train_balanced = smote.fit_resample(X_train, y_train)

# Define Random Forest model with best hyperparameters and class weights
rf_clf = RandomForestClassifier(
    max_depth=20,
    max_features=0.5,
    min_samples_leaf=2,
    min_samples_split=2,
    n_estimators=40,
    class_weight='balanced',  # Class weights set to 'balanced'
    random_state=42
)

# Train the model on the SMOTE-balanced training data
rf_clf.fit(X_train_balanced, y_train_balanced)

# Make predictions on the validation data
y_pred = rf_clf.predict(X_val)

# Evaluate the model using classification report and confusion matrix
print("Validation Set - Classification Report:")
print(classification_report(y_val, y_pred))

# Plot confusion matrix
cm = confusion_matrix(y_val, y_pred)
sns.heatmap(cm, annot=True, fmt='d')
plt.title("Confusion Matrix")
plt.xlabel("Predicted")
plt.ylabel("True")
plt.show()
Validation Set - Classification Report:
              precision    recall  f1-score   support

           0       0.68      0.86      0.76        44
           1       0.00      0.00      0.00         6
           2       0.00      0.00      0.00         4
           3       0.00      0.00      0.00         5
           4       0.00      0.00      0.00         3

    accuracy                           0.61        62
   macro avg       0.14      0.17      0.15        62
weighted avg       0.48      0.61      0.54        62

/Users/anuragsharma/anaconda3/lib/python3.11/site-packages/sklearn/metrics/_classification.py:1344: UndefinedMetricWarning: Precision and F-score are ill-defined and being set to 0.0 in labels with no predicted samples. Use `zero_division` parameter to control this behavior.
  _warn_prf(average, modifier, msg_start, len(result))
/Users/anuragsharma/anaconda3/lib/python3.11/site-packages/sklearn/metrics/_classification.py:1344: UndefinedMetricWarning: Precision and F-score are ill-defined and being set to 0.0 in labels with no predicted samples. Use `zero_division` parameter to control this behavior.
  _warn_prf(average, modifier, msg_start, len(result))
/Users/anuragsharma/anaconda3/lib/python3.11/site-packages/sklearn/metrics/_classification.py:1344: UndefinedMetricWarning: Precision and F-score are ill-defined and being set to 0.0 in labels with no predicted samples. Use `zero_division` parameter to control this behavior.
  _warn_prf(average, modifier, msg_start, len(result))

Test Set

In [97]:
# Evaluate the model on the test set
y_test_pred = rf_clf.predict(X_test)
print("\nTest Set - Classification Report:")
print(classification_report(y_test, y_test_pred))

print("\nTest Set - Confusion Matrix:")
conf_matrix_test = confusion_matrix(y_test, y_test_pred)
sns.heatmap(conf_matrix_test, annot=True, fmt='d', cmap='Blues')
plt.title('Confusion Matrix - Test Set')
plt.show()
Test Set - Classification Report:
              precision    recall  f1-score   support

           0       0.87      0.94      0.90        50
           1       0.00      0.00      0.00         4
           2       0.33      0.50      0.40         4
           3       1.00      0.33      0.50         3
           4       0.00      0.00      0.00         1

    accuracy                           0.81        62
   macro avg       0.44      0.35      0.36        62
weighted avg       0.77      0.81      0.78        62


Test Set - Confusion Matrix:
/Users/anuragsharma/anaconda3/lib/python3.11/site-packages/sklearn/metrics/_classification.py:1344: UndefinedMetricWarning: Precision and F-score are ill-defined and being set to 0.0 in labels with no predicted samples. Use `zero_division` parameter to control this behavior.
  _warn_prf(average, modifier, msg_start, len(result))
/Users/anuragsharma/anaconda3/lib/python3.11/site-packages/sklearn/metrics/_classification.py:1344: UndefinedMetricWarning: Precision and F-score are ill-defined and being set to 0.0 in labels with no predicted samples. Use `zero_division` parameter to control this behavior.
  _warn_prf(average, modifier, msg_start, len(result))
/Users/anuragsharma/anaconda3/lib/python3.11/site-packages/sklearn/metrics/_classification.py:1344: UndefinedMetricWarning: Precision and F-score are ill-defined and being set to 0.0 in labels with no predicted samples. Use `zero_division` parameter to control this behavior.
  _warn_prf(average, modifier, msg_start, len(result))

Training Set

In [98]:
# Evaluate the model on the training set
y_train_pred = rf_clf.predict(X_train)
print("Training Set - Classification Report:")
print(classification_report(y_train, y_train_pred))

print("\nTraining Set - Confusion Matrix:")
conf_matrix_train = confusion_matrix(y_train, y_train_pred)
sns.heatmap(conf_matrix_train, annot=True, fmt='d', cmap='Blues')
plt.title('Confusion Matrix - Training Set')
plt.show()
Training Set - Classification Report:
              precision    recall  f1-score   support

           0       0.98      1.00      0.99       209
           1       1.00      1.00      1.00        29
           2       0.95      0.91      0.93        23
           3       1.00      0.86      0.93        22
           4       1.00      1.00      1.00         4

    accuracy                           0.98       287
   macro avg       0.99      0.95      0.97       287
weighted avg       0.98      0.98      0.98       287


Training Set - Confusion Matrix:
In [99]:
X_train, X_test, y_train, y_test = train_test_split(data['NewDescription'], data['Accident Level'].values, test_size=0.2, random_state=42)

print('Training utterances: {}'.format(X_train.shape[0]))
print('Validation utterances: {}'.format(X_test.shape[0]))
Training utterances: 328
Validation utterances: 83

Running models without SMOTE

In [100]:
# Defining a function which quickly test the fit of 6 different models on the dataset
def ml_models(X_train , y_train, X_test, y_test):

    # creating a dictionary with different ML models
    models = {
        'LogReg': LogisticRegression(), 
        'Naive Bayes': GaussianNB(),        
        'KNN': KNeighborsClassifier(),
        'SVM': SVC(), 
        'Decision Tree': DecisionTreeClassifier(criterion='entropy',max_depth=6,random_state=100,min_samples_leaf=5),          
        'RandomForest': RandomForestClassifier(n_estimators=100, max_depth=7),
        'Bagging': BaggingClassifier(n_estimators=50, max_samples=.7),
        'AdaBoost': AdaBoostClassifier(n_estimators= 50),
        'Gradient Boost': GradientBoostingClassifier(n_estimators = 50, learning_rate = 0.05),
        'XGBoost': XGBClassifier()
    }
    
    names = []
    scores = []
    precisions = []
    f1_scores =[]
    train_accuracies = []
    test_accuracies = []
    
    for name, model in models.items(): # Looping through each and every model
        clf = model.fit(X_train, y_train) # Fit the models one by one
        result = clf.score(X_test,y_test) 
        
        y_train_pred = clf.predict(X_train)
        y_test_pred = clf.predict(X_test)
        report = classification_report(y_train, y_train_pred)
        
        precision = precision_score(y_train, y_train_pred, average='weighted')
        f1 = f1_score(y_train, y_train_pred, average='weighted')
        train_accuracy = accuracy_score(y_train, y_train_pred)
        test_accuracy = accuracy_score(y_test, y_test_pred)

#         print("name=",name, "result=", result, "precision=",precision)
        names.append(name)
        scores.append(result) # Appending the test scores to the list
        precisions.append(precision)
        f1_scores.append(f1)
        test_accuracies.append(test_accuracy)
        
        result_df =  pd.DataFrame({'model': names, 'accuracy': scores, 'precision':precisions, 'f1-score': f1-scores, 'train_accuracies': train_accuracy, 'test_accuracies': test_accuracies }) # Creating the dataframe using the model scores

    return result_df # Returns the dataframe
In [101]:
vectorizer = CountVectorizer(binary=True, ngram_range=(1, 2))
X_train_a = vectorizer.fit_transform(X_train)
X_test_a = vectorizer.transform(X_test)
In [102]:
ml_models(X_train_a.toarray(), y_train, X_test_a.toarray(), y_test)
/Users/anuragsharma/anaconda3/lib/python3.11/site-packages/sklearn/metrics/_classification.py:1344: UndefinedMetricWarning: Precision and F-score are ill-defined and being set to 0.0 in labels with no predicted samples. Use `zero_division` parameter to control this behavior.
  _warn_prf(average, modifier, msg_start, len(result))
/Users/anuragsharma/anaconda3/lib/python3.11/site-packages/sklearn/metrics/_classification.py:1344: UndefinedMetricWarning: Precision and F-score are ill-defined and being set to 0.0 in labels with no predicted samples. Use `zero_division` parameter to control this behavior.
  _warn_prf(average, modifier, msg_start, len(result))
/Users/anuragsharma/anaconda3/lib/python3.11/site-packages/sklearn/metrics/_classification.py:1344: UndefinedMetricWarning: Precision and F-score are ill-defined and being set to 0.0 in labels with no predicted samples. Use `zero_division` parameter to control this behavior.
  _warn_prf(average, modifier, msg_start, len(result))
/Users/anuragsharma/anaconda3/lib/python3.11/site-packages/sklearn/metrics/_classification.py:1344: UndefinedMetricWarning: Precision is ill-defined and being set to 0.0 in labels with no predicted samples. Use `zero_division` parameter to control this behavior.
  _warn_prf(average, modifier, msg_start, len(result))
/Users/anuragsharma/anaconda3/lib/python3.11/site-packages/sklearn/metrics/_classification.py:1344: UndefinedMetricWarning: Precision and F-score are ill-defined and being set to 0.0 in labels with no predicted samples. Use `zero_division` parameter to control this behavior.
  _warn_prf(average, modifier, msg_start, len(result))
/Users/anuragsharma/anaconda3/lib/python3.11/site-packages/sklearn/metrics/_classification.py:1344: UndefinedMetricWarning: Precision and F-score are ill-defined and being set to 0.0 in labels with no predicted samples. Use `zero_division` parameter to control this behavior.
  _warn_prf(average, modifier, msg_start, len(result))
/Users/anuragsharma/anaconda3/lib/python3.11/site-packages/sklearn/metrics/_classification.py:1344: UndefinedMetricWarning: Precision and F-score are ill-defined and being set to 0.0 in labels with no predicted samples. Use `zero_division` parameter to control this behavior.
  _warn_prf(average, modifier, msg_start, len(result))
/Users/anuragsharma/anaconda3/lib/python3.11/site-packages/sklearn/metrics/_classification.py:1344: UndefinedMetricWarning: Precision is ill-defined and being set to 0.0 in labels with no predicted samples. Use `zero_division` parameter to control this behavior.
  _warn_prf(average, modifier, msg_start, len(result))
/Users/anuragsharma/anaconda3/lib/python3.11/site-packages/sklearn/metrics/_classification.py:1344: UndefinedMetricWarning: Precision and F-score are ill-defined and being set to 0.0 in labels with no predicted samples. Use `zero_division` parameter to control this behavior.
  _warn_prf(average, modifier, msg_start, len(result))
/Users/anuragsharma/anaconda3/lib/python3.11/site-packages/sklearn/metrics/_classification.py:1344: UndefinedMetricWarning: Precision and F-score are ill-defined and being set to 0.0 in labels with no predicted samples. Use `zero_division` parameter to control this behavior.
  _warn_prf(average, modifier, msg_start, len(result))
/Users/anuragsharma/anaconda3/lib/python3.11/site-packages/sklearn/metrics/_classification.py:1344: UndefinedMetricWarning: Precision and F-score are ill-defined and being set to 0.0 in labels with no predicted samples. Use `zero_division` parameter to control this behavior.
  _warn_prf(average, modifier, msg_start, len(result))
/Users/anuragsharma/anaconda3/lib/python3.11/site-packages/sklearn/metrics/_classification.py:1344: UndefinedMetricWarning: Precision is ill-defined and being set to 0.0 in labels with no predicted samples. Use `zero_division` parameter to control this behavior.
  _warn_prf(average, modifier, msg_start, len(result))
/Users/anuragsharma/anaconda3/lib/python3.11/site-packages/sklearn/metrics/_classification.py:1344: UndefinedMetricWarning: Precision and F-score are ill-defined and being set to 0.0 in labels with no predicted samples. Use `zero_division` parameter to control this behavior.
  _warn_prf(average, modifier, msg_start, len(result))
/Users/anuragsharma/anaconda3/lib/python3.11/site-packages/sklearn/metrics/_classification.py:1344: UndefinedMetricWarning: Precision and F-score are ill-defined and being set to 0.0 in labels with no predicted samples. Use `zero_division` parameter to control this behavior.
  _warn_prf(average, modifier, msg_start, len(result))
/Users/anuragsharma/anaconda3/lib/python3.11/site-packages/sklearn/metrics/_classification.py:1344: UndefinedMetricWarning: Precision and F-score are ill-defined and being set to 0.0 in labels with no predicted samples. Use `zero_division` parameter to control this behavior.
  _warn_prf(average, modifier, msg_start, len(result))
/Users/anuragsharma/anaconda3/lib/python3.11/site-packages/sklearn/metrics/_classification.py:1344: UndefinedMetricWarning: Precision is ill-defined and being set to 0.0 in labels with no predicted samples. Use `zero_division` parameter to control this behavior.
  _warn_prf(average, modifier, msg_start, len(result))
Out[102]:
model accuracy precision f1-score train_accuracies test_accuracies
0 LogReg 0.746988 1.000000 0.253012 1.0 0.746988
1 Naive Bayes 0.746988 1.000000 0.253012 1.0 0.746988
2 KNN 0.746988 0.539867 0.253012 1.0 0.746988
3 SVM 0.746988 0.877964 0.253012 1.0 0.746988
4 Decision Tree 0.698795 0.671789 0.301205 1.0 0.698795
5 RandomForest 0.746988 0.539867 0.253012 1.0 0.746988
6 Bagging 0.746988 0.946306 0.253012 1.0 0.746988
7 AdaBoost 0.734940 0.638341 0.265060 1.0 0.734940
8 Gradient Boost 0.722892 0.856098 0.277108 1.0 0.722892
9 XGBoost 0.722892 1.000000 0.277108 1.0 0.722892

Observations:

  • Logistic Regression, Naive Bayes, SVM, RandomForest, Bagging, and KNN have an accuracy of around ~75%.
  • Decision Tree has an accuracy of 69%.
  • AdaBoost has the lowest accuracy of 62%.
  • Models like Logistic Regression, Naive Bayes, SVM, Bagging, and RandomForest have high precision but low F1-score, indicating that they may have high false positives.
  • Gradient Boost has the highest precision and XGBoost has the highest F1-score.
  • All models perform similarly on the test set, with an accuracy of around 75%.

SMOTE

SMOTE (Synthetic Minority Over-sampling Technique) is a method used to tackle class imbalance in classification tasks.

It generates synthetic samples for the minority class by interpolating between existing instances, thus balancing the dataset. This technique enhances the performance of machine learning models by ensuring they learn from sufficient minority class examples.

Key parameter k_neighbours determines the number of nearest neighbors used in generating synthetic samples.

SMOTE is widely used to improve model accuracy and reliability in scenarios with imbalanced data distributions.

In [103]:
# Defining a function which quickly tests the fit of 6 different models on the dataset
def ml_models_with_SMOTE(X_train, y_train, X_test, y_test):

        # creating a dictionary with different ML models
    models = {
        'LogReg': LogisticRegression(), 
        'Naive Bayes': GaussianNB(),        
        'KNN': KNeighborsClassifier(),
        'SVM': SVC(), 
        'Decision Tree': DecisionTreeClassifier(criterion='entropy',max_depth=6,random_state=100,min_samples_leaf=5),          
        'RandomForest': RandomForestClassifier(n_estimators=100, max_depth=7),
        'Bagging': BaggingClassifier(n_estimators=50, max_samples=.7),
        'AdaBoost': AdaBoostClassifier(n_estimators= 50),
        'Gradient Boost': GradientBoostingClassifier(n_estimators = 50, learning_rate = 0.05),
        'XGBoost': XGBClassifier()
    }
    
    names = []
    scores = []
    precisions = []
    f1_scores = []
    train_accuracies = []
    test_accuracies = []

    for name, model in models.items():  # Looping through each model
        # Create an SMOTE instance (adjust k_neighbors if needed)
        smote = SMOTE(k_neighbors=2)  # Number of neighbors to consider for synthetic sample generation

        # Generate synthetic samples
        X_train_resampled, y_train_resampled = smote.fit_resample(X_train.copy(), y_train.copy())
        
        # Fit the model with the resampled data
        clf = model.fit(X_train_resampled, y_train_resampled)
        result = clf.score(X_test, y_test)

        y_train_pred = clf.predict(X_train_resampled)
        y_test_pred = clf.predict(X_test)
        report = classification_report(y_train_resampled, y_train_pred)

        precision = precision_score(y_train_resampled, y_train_pred, average='weighted')
        f1 = f1_score(y_train_resampled, y_train_pred, average='weighted')
        train_accuracy = accuracy_score(y_train_resampled, y_train_pred)
        test_accuracy = accuracy_score(y_test, y_test_pred)

        names.append(name)
        scores.append(result)
        precisions.append(precision)
        f1_scores.append(f1)
        train_accuracies.append(train_accuracy)
        test_accuracies.append(test_accuracy)

        result_df = pd.DataFrame({'model': names,
                              'accuracy': scores,
                              'precision': precisions,
                              'f1-score': f1_scores,
                              'train_accuracies': train_accuracies,
                              'test_accuracies': test_accuracies})

    return result_df

Model Comparison with SMOTE

In [104]:
ml_models_with_SMOTE(X_train_a.toarray(), y_train, X_test_a.toarray(), y_test)
Out[104]:
model accuracy precision f1-score train_accuracies test_accuracies
0 LogReg 0.493976 0.936695 0.930972 0.930290 0.493976
1 Naive Bayes 0.746988 0.782055 0.635737 0.666390 0.746988
2 KNN 0.084337 0.780129 0.640638 0.713693 0.084337
3 SVM 0.686747 0.892844 0.873756 0.874689 0.686747
4 Decision Tree 0.289157 0.719642 0.679951 0.683817 0.289157
5 RandomForest 0.638554 0.813552 0.788720 0.795851 0.638554
6 Bagging 0.445783 0.918818 0.903707 0.902905 0.445783
7 AdaBoost 0.228916 0.513684 0.391818 0.404149 0.228916
8 Gradient Boost 0.493976 0.847018 0.831649 0.829876 0.493976
9 XGBoost 0.590361 0.935757 0.928796 0.927801 0.590361
In [105]:
# def train_test_model(model, method, X_train, X_test, y_train, y_test, of_type, index, scale, report, save_model):
    
#     if report == "yes":
#         print(model)
#         print("***************************************************************************")

#     model.fit(X_train, y_train)  # Fit the model on Training set

#     if of_type == "coef":
#         # Intercept and Coefficients
#         print("The intercept for our model is", model.intercept_, "\n")
#         for idx, col_name in enumerate(X_train.columns):
#             print("The coefficient for {} is {}".format(col_name, model.coef_.ravel()[idx]))

#     y_pred = model.predict(X_test)  # Predict on Test set

#     # Initialise mc_logloss
#     mc_logloss = 1.00
#     if method not in ['LogisticRegression', 'SVC'] and hasattr(model, 'predict_proba'):
#         y_predictions = model.predict_proba(X_test)
#     else:
#          y_predictions = model.predict(X_test)
    
#     train_accuracy_score = model.score(X_train, y_train)
#     test_accuracy_score = model.score(X_test, y_test)

#     precision_score_val = precision_score(y_test, y_pred, average='weighted')
#     recall_score_val = recall_score(y_test, y_pred, average='weighted')
#     f1_score_val = f1_score(y_test, y_pred, average='weighted')

#     if method not in ['LogisticRegression', 'SVC']:
#         mc_logloss = log_loss(y_test, y_predictions)

#     if report == "yes":
#         # Model - Confusion matrix
#         model_cm = confusion_matrix(y_test, y_pred)
#         sns.heatmap(model_cm, annot=True,  fmt='.2f', xticklabels=["I", "II", "III", "IV", "V"], yticklabels=["I", "II", "III", "IV", "V"])
#         plt.ylabel('Actual')
#         plt.xlabel('Predicted')
#         plt.show()

#         # Model - Classification report
#         model_cr = classification_report(y_test, y_pred)
#         print(model_cr)

#     # Store the accuracy results for each model in a dataframe for final comparison
#     results_df = pd.DataFrame({'Method': method, 'Train Accuracy': train_accuracy_score, 'Test Accuracy': test_accuracy_score,
#                                'Precision': precision_score_val, 'Recall': recall_score_val, 'F1-Score': f1_score_val,
#                                'Multi-Class Logloss': mc_logloss}, index=[index])

#     # Save the model
#     if save_model == "yes":
#         filename = 'finalised_model.sav'
#         pickle.dump(model, open(filename, 'wb'))

#     return results_df  # return all the metrics along with predictions
In [108]:
# def gridsearch_allmodels(X_train_common, X_test_common, y_train, y_test, scale):
    
#     # Define classification models with their respective parameter grids
#     models = [
#         ['LogisticRegression', LogisticRegression(solver='lbfgs', multi_class='multinomial', random_state=1), 
#          {'C': [0.001, 0.01, 0.1, 1, 10, 100]}],
#         ['DecisionTreeClassifier', DecisionTreeClassifier(criterion='gini', random_state=1), 
#          {'max_depth': [3, 5, 10]}],
#         ['RandomForestClassifier', RandomForestClassifier(n_estimators=10, n_jobs=-1, random_state=1, verbose=2), 
#          {'n_estimators': [10, 15, 20]}],
#         ['SVC', SVC(kernel='rbf', probability=True), 
#          {'C': [0.1, 1, 10], 'gamma': [0.001, 0.01, 0.1]}],
#         ['GaussianNB', GaussianNB(), {}],  # No hyperparameters to tune for GaussianNB
#         ['KNeighborsClassifier', KNeighborsClassifier(n_neighbors=5), 
#          {'n_neighbors': [2]}],
#         ['AdaBoostClassifier', AdaBoostClassifier(n_estimators=100, learning_rate=0.25, random_state=1), 
#          {'n_estimators': [10, 15, 20], 'learning_rate': [0.01, 0.1, 0.5]}],
#         ['GradientBoostingClassifier', GradientBoostingClassifier(loss='deviance', n_estimators=50, learning_rate=0.1, validation_fraction=0.2, random_state=1), 
#          {'n_estimators': [10, 15, 20], 'learning_rate': [0.01, 0.1, 0.5]}]
#     ]
    
#     all_gridResultsDf = pd.DataFrame()
    
#     for name, classifier, param_grid in models:
#         # Initialize GridSearchCV
#         grid_search = GridSearchCV(estimator=classifier, param_grid=param_grid, scoring='accuracy', cv=5)
        
#         # Train the model with hyperparameter tuning
#         grid_search.fit(X_train_common, y_train)
        
#         # Print the best parameters found by GridSearchCV
#         print(f"Best parameters for {name}: {grid_search.best_params_}")
        
#         # Train and test the model with the best parameters
#         grid_results = train_test_model(grid_search.best_estimator_, name, X_train_common, X_test_common, y_train, y_test, 'none', 1, scale, 'no', 'no')
        
#         # Store the accuracy results for each model in a dataframe for final comparison
#         all_gridResultsDf = pd.concat([all_gridResultsDf, grid_results])
    
#     return all_gridResultsDf
In [109]:
# # Initialize SMOTE
# sm = SMOTE(random_state=1, k_neighbors=2)

# # Perform SMOTE on the training data
# X_train_smote, y_train_smote = sm.fit_resample(X_train_a.toarray(), y_train)

# all_gridResultsDf = pd.DataFrame()
# gridsearch_allmodels(X_train_smote, X_test, y_train_smote, y_test, 'no')

Observations: